...运算符拷贝对象、Object.assign()拷贝对象

本文对比了JavaScript中Object.assign()和扩展运算符...在对象复制中的行为,指出两者在处理深层属性时的不同:前者可能影响子对象,后者不会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

…运算符

拷贝举例

        let animal = {type:'cat',name:'vivi',children:{
            name:"ch1",
            age:1
        }};
        let copy = {...animal};
        animal.name = "hihi";
        animal.children.age = 6;

        console.log('copy',copy);
        console.log('animal',animal);

运行结果
在这里插入图片描述
由以上运行结果可以看出,...运算符进行对象拷贝的时候

对于第一层的元素来说,修改源对象的元素值,新拷贝的对象对应元素值不会被影响;
但是对于再深层次的元素来说,修改源对象的元素值,新拷贝的对象对应元素值也会跟着变化。

Object.assign()

举例

        let animal = {type:'cat',name:'vivi',children:{
            name:"ch1",
            age:1
        }};
        
        let copy = Object.assign({},animal);
        animal.children.age = 9;
        animal.name = "hoho";
        
        console.log('copy',copy);
        console.log('animal',animal);

运行结果
在这里插入图片描述
由以上运行结果可以看出,Object.assign()实现对象拷贝的时候

对于第一层的元素来说,修改源对象的元素值,新拷贝的对象对应元素值不会被影响;
但是对于再深层次的元素来说,修改源对象的元素值,新拷贝的对象对应元素值也会跟着变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值