我在h5bp/Front-end-Developer-Interview-Questions
存储库中找到了这个问题。
一个例子让我困惑。
var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
// foo.x is undefined /* WHY??? */
bar.y = bar; // This works however.
bar.y.y.y;
//> Object {n: 1, x: Object, y: Object}
var xoxo = foo = {n: 2};
//> Object {n: 2}
使用bar
,我将对象文字的x
属性分配给对象本身以及现在看来正在发生的事情是它通过{{1引用自身无限次"。
我期望行x
中出现相同的行为。 foo.x = foo = {n: 2};
会发生什么?为什么?如果你解释了让我得到正确答案的步骤,我会很感激
想要查看我的右手分配逻辑是否存在缺陷,但foo.x
似乎按照我的预期分配。