【发布时间】:2019-11-18 21:53:54
【问题描述】:
如何在 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
//但我想保留它现在不应该更改的对象属性的先前值。在 console.log(child.b) 的情况下它应该显示 6 而不是 7
【问题讨论】:
-
您的代码与继承或原型无关。
-
@Lain - 这是复制对象的非常糟糕的方法。它在很多方面都失败了,并且完全没有必要通过 text.
-
@Ele - 根据 OP 所说的他们想要的(分配给
parent.b不影响child.b的值),克隆对象而不是仅仅引用它是真正的问题。 OP提到的继承等,我认为,这是一个红鲱鱼。 (不确定我是否完全同意关闭,但我自己不同意不足以自行打开它,尤其是鉴于parent.b/child.b的事情。:-)跨度> -
@T.J.Crowder 我知道,但是当他/她只将一个对象分配给一个变量时,OP 对真正发生的事情缺乏了解。
-
@Ele - 是的,完全同意。
标签: javascript