JS:Object.assign()是否创建深层副本或浅层副本

ShivangiBilora:

我刚刚遇到了这个概念

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React是否在内部创建prevState的深层副本或浅层副本?

goroutine会创建深层副本还是浅层副本?

对象是否以javascript的深层或浅层副本推入数组?

GO-阵列副本是深层副本还是浅层副本?

节点js中的module.exports是否创建导出对象或函数的浅表副本或深表副本?

可视化深层副本与浅层副本之间的差异

深层副本和浅层副本有什么区别?

创建 div 的深层副本

创建记录的深层副本?

传递值/引用是否分别相当于制作深层/浅层副本?

Java-实现数组的深层和浅层副本

.copy()不会创建深层副本

String(byte [])是否创建字节数组的深层副本?

是否存在无法为其创建深层副本的对象?

forEach是否在循环之前创建数组的深层副本?

Lombok toBuilder()方法是否创建字段的深层副本

Python3:dict构造函数是否创建深层副本?

如何在Java中正确执行深层副本和浅层副本

如何创建QList的深层副本(Qt 4.8)

如何创建列表集合的深层副本

在角度2中创建深层副本

Javascript对象的深层副本无法在Vue.js中正常工作

猫鼬+ Node.js,Object.assign(从数据库返回的数据的副本)显示了其他数据

在Node.js中创建模块的副本而不是实例

如果我想要对象的非递归深层副本,是否应该在Python中覆盖副本或深层副本?

ToDictionary()是否创建副本或引用?

&* x操作是否创建副本?

StyleFrame对象的深层副本

对象数组的深层副本