Javascript 对象 多个引用

Javascript Object Multiple references

本文关键字:引用 对象 Javascript      更新时间:2023-09-26

只是一个(希望)快速的问题,以澄清Javascript如何处理对象。我不习惯JS,所以这有点令人惊讶,这就是为什么我想仔细检查!

假设我有一个对象:

function food(price) {
  this.price = price || 100; 
}
var myFood = new food(100);

然后将此对象存储在两个数组中:

var foo = [];
var bar = [];
foo.push(myFood);
bar.push(myFood);

我在这里所做的只是存储对myFood的引用是否正确?我没有创建对象的副本?因此,如果我说:

foo[0].price = 50;

bar[0].price 也会 == 50,因为它存储了对 myFood 的引用,并且实际上影响了价格的是 myFood,而不是 foo 或 bar?

提前非常感谢!我已经看到一些堆栈溢出线程将此问题作为更广泛帖子的一部分提到,但我只是想将其全部列出以确保!此致敬意

是的,javascript 只会推送引用而不是对象的副本。

你是对的。 但是,只要这样做并看看会发生什么,就非常容易了。

http://jsfiddle.net/67haQ/

您显然已经知道它是如何工作的,稍微玩弄一下确认似乎比 SO 问题更容易。

只是说'