var actual = { first: 1, second : 2 }
var copy = actual;
delete copy.first;
当我控制台记录副本时,它没有第一个属性,但是当我控制台记录实际时,即使该对象也没有第一个属性。
有人可以解释一下这里发生了什么吗?如何避免这种情况?
预期:
actual: { first: 1, second : 2 }
Copy: { second: 2 }
P.S:我知道我可以直接在复制对象上分配第二个属性而不进行复制,这只是一个示例。我正在处理非常大的物体。所以我必须复制然后删除属性而不影响实际对象。
谢谢
最佳答案
您可以使用JSON.stringify()
、JSON.parse()
,或者按照@elclanrs的建议,Object.assign()
>
var actual = { first: 1, second : 2 }
var copy = JSON.parse(JSON.stringify(actual));
delete copy.first;
var actual = { first: 1, second : 2 }
var copy = Object.assign({}, actual);
delete copy.first;
关于javascript - 以正确的方式删除对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41795621/