Javascript 对象禁用自动更新对象父级



我有:

var obj_a = {"A":1231,"B":34534,...};
var obj_b = obj_a;
for(var id in obj_b){
//do something
delete obj_b[id];
}
console.log(obj_b); // {}
console.log(obj_a); // {}

我不想obj_a{}

我该如何解决这个问题?

谢谢!

这会对你有所帮助。 我们通过复制obj_a价值来创造obj_b

var obj_b = Object.assign({},obj_a);

获取更多信息 : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

你想要的是做一个深度复制obj_a并将其分配给obj_b,如下所示:

var obj_b = Object.assign({}, obj_a)

obj_a是对你创建的对象的引用,因此obj_b = obj_a行是对引用的副本,而不是它的值。因此,当您改变 for 循环中obj_b的值时,您也会将值更改为obj_a持有的引用。

编辑:刚刚看了一下基准测试,注意到Object.assign现在比JSON.stringify更快

最新更新