当我运行此代码时 (under a <script> code)
window.msg = { a: 0}
var b = window.msg;
function g()
{
console.log(b)
}
msg = { a: 1};
g()
Run Code Online (Sandbox Code Playgroud)
在控制台中 - 我得到{a:0}.
这是为什么 ?我以为msg = { a: 1};会更新参考...
如果您将代码更改为:
window.msg = { a: 0}
var b = window.msg;
function g()
{
console.log(b)
}
msg.a = 1; // this line is changed
g()
Run Code Online (Sandbox Code Playgroud)
你会得到的{a:1}.
你重新分配msg所以b只指向旧的价值msg.
b不参考window.msg但是{a:0}对象.