【发布时间】:2012-03-17 10:22:53
【问题描述】:
我了解 javascript 语言的以下属性:
var bar = 1;
var foo = bar;
bar = "something entirely different";
// foo is still 1
但是,当尝试将此逻辑应用于对象时,它的行为似乎有所不同:
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
谁能告诉我发生了什么以及为什么会有不同?
【问题讨论】:
-
我可能已经回答了我自己的问题:“Javascript 总是按值传递,但是当变量引用对象(包括数组)时,“值”就是对对象的引用。”但这仍然令人困惑,有人可以解释更多吗?
-
看看我的回答杰夫,如果这有意义,请告诉我?
-
Is Java pass by reference? 的可能重复项
-
该问题是相关的,因为您的问题与 JavaScript 无关。
-
@MikeSamuel 你不能在Java中执行上面的代码sn-ps,你会得到一个错误。我会说使用 JavaScript 代码来参考让他感到困惑的东西会使这个关于 JavaScript 的问题。
标签: javascript variables pass-by-reference