var a = {n:1};
a.x = a = {n:2};
alert(a.x); // --> undefined
a.x = a = {n:2};
alert(a.x); // --> undefined
var a = {
s: function(){alert('ok');}
};
var b = {
s: a.s
};
a.s = function(){
alert('ok2')
};
b.s();
s: function(){alert('ok');}
};
var b = {
s: a.s
};
a.s = function(){
alert('ok2')
};
b.s();
0
最新答案:1
对于连续赋值运算符:实际执行过程:从右到左,a 先被赋值为{n:2},随后a.x被赋值{n:2}
(现在的a和原来的a已经不是同一个引用了)
var a = {n:1};
var b = a; // 持有a,以回查
a.x = a = {n:2};
alert(a.x);// --> undefined
alert(b.x);// --> [object Object]
var b = a; // 持有a,以回查
a.x = a = {n:2};
alert(a.x);// --> undefined
alert(b.x);// --> [object Object]
0