Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js 浅拷贝

作者:一岁就很帅   发布日期:2026-05-21   浏览:36

// 浅拷贝示例代码

// 方法1: 使用 Object.assign()
let obj1 = { a: 1, b: { c: 2 } };
let obj2 = Object.assign({}, obj1);

console.log(obj2); // { a: 1, b: { c: 2 } }

// 修改 obj2 的属性
obj2.a = 10;
console.log(obj1.a); // 1 (obj1 的 a 属性没有被修改)
console.log(obj2.a); // 10

// 修改 obj2 中的嵌套对象属性
obj2.b.c = 20;
console.log(obj1.b.c); // 20 (obj1 中的嵌套对象也被修改了,因为是浅拷贝)

// 方法2: 扩展运算符 (...)
let obj3 = { ...obj1 };

console.log(obj3); // { a: 1, b: { c: 2 } }

// 修改 obj3 的属性
obj3.a = 100;
console.log(obj1.a); // 1 (obj1 的 a 属性没有被修改)
console.log(obj3.a); // 100

// 修改 obj3 中的嵌套对象属性
obj3.b.c = 200;
console.log(obj1.b.c); // 200 (obj1 中的嵌套对象也被修改了,因为是浅拷贝)

// 解释说明:
// 浅拷贝只会复制对象的第一层属性,对于嵌套的对象或数组,它只是复制了引用。
// 因此,当修改嵌套对象或数组时,原始对象和拷贝对象会共享相同的引用,导致同时被修改。

上一篇:js 深拷贝

下一篇:js apply和call的区别

大家都在看

js 数组打乱顺序

js 两个数组取交集

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js fill方法

js 数组连接

js json数组

js 数组复制

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站