4

Javascriptがオブジェクトを処理する方法を明確にするための(うまくいけば)簡単な質問です。私はJSに慣れていないので、少し驚きました。それで、再確認したいと思います。

オブジェクトがあるとしましょう:

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

var myFood = new food(100);

次に、このオブジェクトを2つの配列に格納します。

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

ここで行っているのはmyFoodへの参照を保存することだけだと思っているのは正しいですか?オブジェクトのコピーを作成していませんか?だから私がそうするなら、言う:

foo[0].price = 50;

bar [0] .priceもmyFoodへの参照を格納するため、50になりますか?実際に価格に影響を与えたのはmyFoodであり、fooやbarではありませんか?

よろしくお願いします!より広い投稿の一部としてこの問題に言及しているスタックオーバーフロースレッドをいくつか見ましたが、念のためにすべてをレイアウトしたかっただけです!よろしくお願いします

4

2 に答える 2

2

はい、javascriptはオブジェクトのコピーではなく参照をプッシュするだけです。

于 2012-06-20T21:23:28.017 に答える
2

あなたは正しいです。しかし、それを実行して何が起こるかを確認するのは非常に簡単です。

http://jsfiddle.net/67haQ/

あなたは明らかにそれがすでにどのように機能するかを知っているようです、確認のために少し遊んでみるのはSOの質問よりも簡単なようです。

言ってるだけ'

于 2012-06-20T21:30:44.263 に答える