前端ES6对象运算符扩展(深拷贝与合并对象)

传统使用 let student2 = student1,是浅拷贝(引用),改变了student2的属性,也会改变student1的属性

如果想要对象不相互关联,需要使用深拷贝,语法是: let student2 = (...student1)

实例演示:

			 let student1 = {name: "李华", age: 18};
            {
                //传统引用,两个学生对象输出的name都为小明
                let student2 = student1;
                student2.name = "小明";
                console.log("student1=>", student1);
                console.log("student2=>", student2);//
            }
            let student ={name: "李华", age: 18};
            {
                // 拷贝对象(深拷贝),只有第二个学生对象输出的是小明
                let student2 = {...student};
                student2.name = "小明";
                console.log("student1=>", student);
                console.log("student2=>", student2);
            }
            {
                // 合并对象[深拷贝],两个对象合并也是深拷贝,不会影响原来对象
                let stu = {name: "小红", age: 18};
                let car = {brand: "奔驰", price: 800000};
                let stu_car = {...stu, ...car}
                stu_car.brand = "比亚迪";
                console.log("stu=>", stu);
                console.log("stu_car=>", stu_car);
            }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值