只是一個(希望)快速的問題來清除Javascript處理對象的方式。我不習慣JS,所以有點意外,這就是爲什麼我要仔細檢查!Javascript對象多個引用
說我有一個對象:
function food(price) {
this.price = price || 100;
}
var myFood = new food(100);
,然後將此對象存儲在兩個數組:
var foo = [];
var bar = [];
foo.push(myFood);
bar.push(myFood);
我是正確的思維,所有我在這裏做的是存儲參考我的食物?我沒有創建對象的COPY?所以,如果我,說:
foo[0].price = 50;
將禁止[0]。價格ALSO == 50,因爲它存儲到myFood的引用,它是myFood已經實際上有它的價格的影響,而不是foo或酒吧?
非常感謝提前!我已經看到一些堆棧溢出線程提到這個問題作爲更廣泛的帖子的一部分,但我只是想把它放在那裏以確保! 祝你好運
爲什麼你不只是運行代碼來看? – Esailija
[JavaScript是傳遞引用還是傳值語言?]的可能重複(http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass價值語言) –
@Esailija - 感謝您的評論!在我來到SO之前,我曾做過,但我認爲我一定在某個地方錯過了一些比簡單樸素的事實更復雜的東西。 :) – flukeflume