我该如何在javascript
中实现下面的事情var parent = {
a: 5,
b: 6
}
var child = parent;
console.log(child.b); // 6
//now if I change the value of b
parent.b = 7
console.log(parent.b); //7
console.log(child.b); //7
//,但是我想保留对象属性的先前值,它不应更改。
https://codebunk.com/b/696347863/
做var child = parent
时,孩子和父时都请参考内存中的同一对象实例。如果要将父属的属性复制到孩子,则需要使用与父对象相同的键创建一个新对象。您可以使用dread ...
或object.sign此
var parent = {
a: 5,
b: 6
}
var child = {...parent};
var child1 = Object.assign({}, parent);
console.log(child.b); // 6
console.log(child1.b); // 6
//now if I change the value of b
parent.b = 7
console.log(parent.b); //7
console.log(child.b); //6
console.log(child1.b); //6
对于深克隆,我们需要使用其他替代方案,因为
Object.assign()
和...
复制了属性值。如果源值是对对象的引用,则仅复制参考值。