4
赋值运算符具有从右到左的关联性。所以赋值关联性
var x,y;
x=y=1;
按预期工作和x等于1.现在考虑的代码:
var foo={};
foo.x = foo = {n: 2};
我希望上述类似下面的工作:
var foo = {n: 2};
foo.x=foo;
然而,在第一种情况foo.x为undefined
,而第二种情况为foo.x points to foo
(循环参考)。任何解释?
任何引用来支持声称转让表达式从左到右进行评估? – haim770
@ haim770在http://www.ecma-international.org/ecma-262/6.0/中,我发现“* ECMAScript指定从左到右评估表达式*”。 – melpomene