【问题标题】:javascript object reference assignment results in undefined [duplicate]javascript对象引用分配导致未定义[重复]
【发布时间】:2019-12-05 11:58:23
【问题描述】:

我在理解 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);

我预计最后 2 个控制台日志是:

console.log(foo.x); // Javascript object {n: 2}
console.log(foo.x.n); // 2

但实际输出未定义和执行错误分别。

【问题讨论】:

标签: javascript


【解决方案1】:

你的单行作业是这样的

foo.x = foo = { n: 2 };

导致 foo 使用 x 属性删除了对 { n: 2 } 的引用,因此当您尝试打印 console.log(foo.x); 时,它会打印 undefined

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2018-04-08
    • 2020-02-21
    相关资源
    最近更新 更多