What is the outcome of: var myvar1 = myvar2 = myvar3?

I have seen in some nodejs scripts variables/objects being used like this:

var myvar1 = myvar2 = myvar3;

Why is this used and what does it mean?


This sets myvar2 to myvar3 , and sets myvar1 to myvar2 .

I assume myvar3 and myvar2 have been declared before this line. If not, myvar2 would be a global (as there's no var ), and if myvar3 wasn't defined, this would give an error.

This expands to:

myvar2 = myvar3; // Notice there's no "var" here
var myvar1 = myvar2;

It will evaluate to:

var myvar1 = myvar2 = myvar3;
var myvar1 = myvar3;          // 'myvar2' has been set to 'myvar3' by now
myvar3;                       // 'myvar1' has been set to 'myvar3' by now

It will first assign myvar3 to myvar2 (without var , so possibly implicit global, watch out for that).

Then it will assign myvar3 's value to myvar1 , because the set value is returned.

The result is again returned, which won't do anything further - in the final line nothing happens with myvar3 's value.

So in the end they have all the same value.


If:

var myvar3 = 5;

var myvar1 = myvar2 = myvar3;

Then they are all = 5

链接地址: http://www.djcxy.com/p/69984.html

上一篇: 命名与匿名功能:相同?

下一篇: 结果如下:var myvar1 = myvar2 = myvar3?