Jef*_*eff 5 javascript variables pass-by-reference
我理解javascript语言的以下属性:
var bar = 1;
var foo = bar;
bar = "something entirely different";
// foo is still 1
Run Code Online (Sandbox Code Playgroud)
但是,当尝试将此逻辑应用于对象时,它似乎采取不同的行为:
var bar = {};
bar.prop = 1;
var foo = bar;
bar.prop = "something entirely different";
// foo.prop now changes to "something entirely different"
// but...
bar = "no longer an object";
// now foo remains an object with the prop property
Run Code Online (Sandbox Code Playgroud)
有人能告诉我发生了什么以及为什么会有区别?