10原始值按值傳遞。對象通過引用傳遞。
對象屬性是通過基於它們的數據類型通過。
這裏要傳遞的整數 - x
表示值1分配x
值2不引用原始對象。
比方說,你在通過屬性是一個數組。我調用的第二個函數接收一個數組,並對該數組進行更改。然後,更改將持續到該對象,因爲該對象的屬性包含對您修改的數組的引用。你沒有技術上的修改對象在所有...你只是修改它的對象引用的數組。當你將一個對象屬性傳遞給一個函數時,它根本不知道它屬於一個對象。
參見例如,類似於你:
var myObj={a:[1]}
function fn1(x){
x=2; //Overwrites x in this scope to the new primitive 2.
//This isn't reflected in myObj because x is not a
//reference to myObj.a it is a reference to the array
//that myObj.a contains (the [1]).
}
function fn2(x){
x.push(2);
}
fn1(myObj.a); //myObj.a is [1]
fn2(myObj.a); //myObj.a is [1,2]