属性值为对象时

若一个对象的属性值为对象,则该属性的属性值引用了一个对象。

    let obj  = {a:2};
    let {...z} = obj;
    obj.a = 4;
    console.log(z.a);  //  2

x是解构赋值的对象,解构赋值为浅拷贝,拷贝形成的对象与原对象没有关联,因此,当obj.a重新赋值为4时,z.a仍为2。
但若对象的属性值是一个对象,数组或者函数时,该属性值是一个引用,解构赋值拷贝的也是引用,即在这里,obj 和z对象的a属性的引用指向了同一个,因此,当obj.a.b 改变时,z.a.b也会发生改变。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.属性的简洁表示法 允许直接写入变量和函数 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量...
    雨飞飞雨阅读 1,146评论 0 3
  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码表明,ES6允...
    呼呼哥阅读 2,940评论 0 2
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 27,558评论 5 19
  • 怀着无比激动的心情去参加了人生第一次家长会!从6月初到现在,一颗悬着的心终于落地了。 顾忌工作时间到9月份才满三年...
    三珊1016阅读 487评论 0 0
  • 二蛋,是什么? 是一个小男孩。 他有一个文艺范的名字叫宇臻。今年刚刚四岁,个头小小,白净脸蛋,长的一脸秀气。小锅盖...
    昕城阅读 461评论 3 3