结果如下:var myvar1 = myvar2 = myvar3?
我在一些nodejs脚本中看到了像这样使用变量/对象:
var myvar1 = myvar2 = myvar3;
为什么使用它,这是什么意思?
这将myvar2
设置为myvar3
,并将myvar1
设置为myvar2
。
我认为myvar3
和myvar2
已经在这行之前声明过了。 如果没有, myvar2
将是一个全局的(因为没有var
),如果myvar3
没有定义,这会给出一个错误。
这扩展到:
myvar2 = myvar3; // Notice there's no "var" here
var myvar1 = myvar2;
它将评估为:
var myvar1 = myvar2 = myvar3;
var myvar1 = myvar3; // 'myvar2' has been set to 'myvar3' by now
myvar3; // 'myvar1' has been set to 'myvar3' by now
它首先将myvar3
分配给myvar2
(没有var
,所以可能是隐式的global,请注意这一点)。
然后它会将myvar3
的值分配给myvar1
,因为返回设定值。
结果再次返回,这不会再做任何事 - 在最后一行中, myvar3
的值没有任何myvar3
。
所以最终它们具有相同的价值。
如果:
var myvar3 = 5;
var myvar1 = myvar2 = myvar3;
然后他们都是= 5