Уловка кода Javascript: в чем ценность foo.x

Я встретил эту проблему в сборнике вопросов GitHub:

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};

Вопрос: какова стоимость foo.x?

Ответundefined.

Я провел некоторые исследования, и я понимаю, что эта проблема (поправьте меня, если я ошибаюсь):

var foo = {n: 1}; объявляет объектfoo который имеет свойствоn равен 1.var bar = foo; объявлен объектbar которые ссылаются на тот же объект, что иfoo.foo.x = foo = {n: 2}; который я считаю равнымfoo.x = (foo = {n: 2});И тогда я получилfoo.x равноundefined, Тем не менее, значениеbar.xэто объект{n:2}.

Еслиbar а такжеfoo ссылаются на тот же объект, почемуbar.x получил значение в то время какfoo.x являетсяundefined? Что на самом деле происходит вfoo.x = foo = {n: 2};?

Ответы на вопрос(1)

Ваш ответ на вопрос