能有人给这到底是怎么回事最好的解释:JavaScript对象的属性引用
var o = {
name: "jack"
};
var z = {
name: o.name
};
o = {};
alert(z.name); // expected undefined, shows "jack" instead
是对象的属性只是引用?销毁对象o似乎并不会破坏引用的对象(在本例中为字符串“jack”)。或者,是不是由o.name引用的“jack”实际上被销毁,而z.name是否创建了o.name的副本?
最佳
// consider this too
var o = {
foo: function() {
return "hello";
}
};
var z = {
m: o.foo
};
o = {};
alert(z.m()); // hello is displayed
字符串通常以类似于对象的方式通过引用来复制。我们不会这么想,因为它们是不可改变的。这更多的是实现细节。 –