我刚刚遇到了这个概念
var copy = Object.assign({}, originalObject);
这会将原始对象的副本创建到“ copy
”对象中。但是,我的问题是,这种克隆对象的方式会创建深层副本还是浅层副本?
PS:困惑在于,如果它创建了一个深拷贝,那么这将是克隆对象的最简单方法。
如果要复制的对象具有将enumerable
属性设置为false的属性,则不要进行深拷贝,即使是浅拷贝也不是安全的。
MDN:
Object.assign()方法仅将可枚举和自己的属性从源对象复制到目标对象
以这个例子
var o = {};
Object.defineProperty(o,'x',{enumerable: false,value : 15});
var ob={};
Object.assign(ob,o);
console.log(o.x); // 15
console.log(ob.x); // undefined
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句