I have a problem understanding reference assignments in JS.
var foo = { n: 1 };
var bar = foo;
bar.n = 3;
console.log(foo.n);
console.log(bar.n);
foo.x = foo = { n: 2 };
console.log(foo.n);
console.log(foo.x);
console.log(foo.x.n);
I expected the last 2 console logs to be:
console.log(foo.x); // Javascript object {n: 2}
console.log(foo.x.n); // 2
but the actual output is undefined and execution error respectively.