why the program's result is undefined?

后端 未结 2 1799
迷失自我
迷失自我 2020-12-15 13:16
 var foo = {};
 foo.c = foo = {};
 console.log(foo.c);

why the result is undefined? i thought it is supposed to be \'[object Object]\'

2条回答
  •  孤街浪徒
    2020-12-15 13:56

    JavaScript engine splits such assignment:

    a = b = c = 1;
    

    As follow:

    a = 1;
    b = 1;
    c = 1;
    

    And not as:

    c = 1;
    b = c;
    a = b;
    

    There is a slightly but important difference – mostly, it involves getters, please check Multiple variable assignments in one row for further details – and that's mostly why your code doesn't behave like expected, because the initial expectations are based on false assumptions.

提交回复
热议问题