猿问

ES6中对象的扩展运算符使用问题?

let o1 = { a: 1 };let o2 = { b: 2 };
o2.__proto__ = o1;let o3 = { ...o2 };

对象o3是o2的拷贝,但是只复制了o2自身的属性,没有复制它的原型对象o1的属性,
这段代码中let o3 = { ...o2 };这句赋值语句跟let o3 = o2有什么区别?


Helenr
浏览 686回答 1
1回答

慕少森

... 的意义就是 Object Spread Operator对象展开运算符通过babel转换的话,会转换成Object.assign所以,let o3 = { ...o2 },最终等价的是:let o3 = { b: 2 };let o4 = o2 的话,就是引用,修改其中一个对象,另一个也会变。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答