js 中參數傳遞(值傳遞和引用傳遞)

js中的參數傳遞包括值傳遞和引用傳遞

1.值傳遞(數字,字符串等)

例如:

$(function(){
   var str="11";
   test1(str);
   alert(str);//值傳遞測試  結果:11
})

function test1(str){ str="22"}


上述代碼測試可以看出數字,字符串值傳遞:是把值直接複製進入方法內,所以在方法內對參數進行修改是修改的拷貝的值,對方法外無影響

2.引用傳遞

   

$(function(){
     var goods={'count':'1'};
     test2(goods);
     alert(JSON.stringify(goods));//json對象引用傳遞,結果:{'count':'2'}
})

function test2(goods){
  goods.count='2'
}

上述代碼測試可以看出對象傳遞的時候值進行了改變,原理:對象傳遞就是引用傳遞,和值傳遞不同,傳遞到方法內的參數進行復制的是傳遞參數的引用地址,方法內部和方法外部的值是同一個地址,所以在方法內部改變對象的值,外部也改變


$(function(){
     var goods={'count':'1'};
     test3(goods);
     alert(JSON.stringify(goods));//json對象引用傳遞,結果:{'count':'1'}
})

function test3(goods){
  goods={'count':4};	
}

上述代碼同樣驗證了引用傳遞的原理,這次沒有改變值的原因是:goods={‘count’:4},可以理解爲重新定義了一個json對象,相當於重新new了一個對象,和方法外部的對象是不一樣的地址,所以外面的對象不受影響



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章