2014-02-06 25 views
-1

我有一個關於在javascript中引用對象的問題。Javascript變量賦值是否通過引用工作?

說我有一個變量是一些對象(讓我們說json),它被稱爲objOne - (var objOne = someJSONObject;)。

如果我繼續前進,並宣佈

var objTwo = objOne; 

我將有兩個引用相同的對象?有點像c指針?

回答

0

概括起來:

  • assignements由值完成
  • 你絕對不會操縱對象,只對象引用

這意味着

  • 你必須對同一對象的兩個引用(可以通過更改對象的屬性來檢查)
  • ,當你在一個變量正在通過一種原始的,改變你的變量不改變其他變量

編輯的價值,因爲它是一個重複的,我會刪除在一分鐘這個答案,讓合適的如果沒有其他答案,則關閉。請投票結束。

+1

確定。非常感謝你的回答dystroy。這解釋了我想知道的,mcgee。 –

0

是,對象是通過引用傳遞:

function changeVal(obj){ 
    obj.value = "bar" 
} 

(function checkRefs(){ 

    var myObject = { 
     value: "foo" 
    }; 


    alert(myObject.value); 

    changeVal(myObject); 

    alert(myObject.value); 


})();