【发布时间】:2013-01-21 18:29:58
【问题描述】:
刚刚重新开始大量使用 Javascript 并尝试更好地理解 Javascript 对象。我之前问过上一个问题,但这个问题不同。我可以断开对象之间存在的引用关系吗?
例如:
var objA={};
objA.my_name='Joe';
var objB=objA;
objB.my_name="jake"; // objA.my_name="jake"
objB.something="this is something";
objA.last_name="Jackson";
console.log(objA.something); // "this si something" can add to parent object at runtime
console.log(objB.last_name); // "Jackson" can add to child object at runtime
// now I'd like to cut off objB from objA such that:
objB.cell_phone='323-213-2323';
console.log(objA.cell_phone); // '323-213-2323' but would like undefined; would like this behavior
提前谢谢
【问题讨论】:
-
你的意思是,如何克隆一个对象?
-
不,我想在开始时参考行为,但随后能够告诉它停止。我查看了克隆答案,但希望在开始时参考行为,然后断开连接
-
当你这样做时:
var objB = objA;你最终只有一个对象;它是一个对象,有两个单独的变量指向它。 JavaScript 中没有“惰性克隆”机制。 -
@timpone 所以你的意思是,以后如何克隆一个对象?或者,您想要两个对象临时反映彼此的状态?
-
后者。基本上创建一个参考关系,然后,在稍后的时间点,能够断开关系。我认为下面的答案就是我们不能以这种方式在 Javascript 中进行真正的元编程(也许是其他方式)
标签: javascript