JavaScript,克隆属性中的原型继承



我该如何在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()...复制了属性值。如果源值是对对象的引用,则仅复制参考值。

最新更新