最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Js從頭學(xué)起(基本數(shù)據(jù)類型和引用類型的參數(shù)傳遞詳細(xì)分析)

 更新時(shí)間:2012年02月16日 20:14:04   作者:  
Js中所有函數(shù)的參數(shù)傳遞都是按值傳遞的,也就是把函數(shù)外面的值復(fù)制給函數(shù)內(nèi)部的參數(shù),就和把值從一個(gè)變量復(fù)制到另一個(gè)變量一樣。下面舉幾個(gè)特別的例子
1、基本數(shù)據(jù)類型傳遞參數(shù):
復(fù)制代碼 代碼如下:

  funciton addTen(num){
    num+=10;
    return num;
  }
  var count=20;
  var result=addTen(count);
  alert(count);//20
  alert(resullt);//30

  執(zhí)行結(jié)果是:20和30。在這段代碼中,將變量count當(dāng)做參數(shù)傳遞給了函數(shù)addTen,也就是相當(dāng)于將變量count的值復(fù)制給了函數(shù)addTen的參數(shù)。這時(shí)addTen的參數(shù)num可以看做是函數(shù)內(nèi)部的一個(gè)變量。在上段代碼中,就相當(dāng)于兩個(gè)基本數(shù)據(jù)類型變量之間的值復(fù)制。而基本數(shù)據(jù)類型都有自己獨(dú)立的內(nèi)存地址,所以num和count是沒有任何關(guān)系的,他們只是值相等而已,函數(shù)執(zhí)行完畢后,count的值并沒有改變。而函數(shù)外面的result是被直接賦值的,所以result的值就是函數(shù)的結(jié)果30。
  2、引用類型傳遞參數(shù):
復(fù)制代碼 代碼如下:

  function setName(obj){
    obj.name="LSN";
  }
  var person=new Object();
  setName(person);
  alert(person.name);//LSN

  執(zhí)行結(jié)果是:LSN。在這段代碼中,函數(shù)setName的作用是給obj對(duì)象添加了一個(gè)屬性name并給該屬性賦值為"LSN",因?yàn)閛bj是引用類型,所以這里屬于是將引用類型person賦值給了obj,也就是說person和obj引用了一個(gè)內(nèi)存地址,所以當(dāng)給obj新加了屬性name時(shí),在函數(shù)外面的person也跟著改變,最后person.naem的結(jié)果為L(zhǎng)SN。
  3、引用類型傳遞參數(shù)到底傳的是值還是引用?
復(fù)制代碼 代碼如下:

  function setName(obj){
    obj.name="ABC";
    obj=new Object();
    obj.name="BCD";
  }
  var person=new Object();
  setName(person);
  alert(person.name);// ABC

  執(zhí)行結(jié)果是:ABC。實(shí)例3與實(shí)例2的區(qū)別是在函數(shù)中又加了2行代碼,在給obj對(duì)象新加一個(gè)屬性name并賦值后 又將obj定義成了一個(gè)新的對(duì)象(new Object()),定義新對(duì)象后又name賦上新的值“BCD”。這個(gè)時(shí)候如果是按引用傳遞的話,那么最后person對(duì)象就會(huì)自動(dòng)修改為指向其name屬性為"BCD"的新對(duì)象,但最后顯示的卻是“ABC”,這說明即使在函數(shù)內(nèi)部修改了參數(shù)的值,但原始的引用還保持不變。實(shí)際上,當(dāng)在函數(shù)內(nèi)部obj=new Object()時(shí) 這個(gè)新的obj就已經(jīng)成為函數(shù)內(nèi)部的局部對(duì)象了,這個(gè)對(duì)象會(huì)在函數(shù)執(zhí)行完畢后自動(dòng)銷毀。

相關(guān)文章

最新評(píng)論

内江市| 濉溪县| 星子县| 日喀则市| 肃宁县| 汝城县| 府谷县| 嘉定区| 安福县| 玛多县| 通海县| 阿瓦提县| 宁陵县| 南木林县| 台安县| 宜兴市| 呼玛县| 仙游县| 三门峡市| 博爱县| 株洲市| 平和县| 安新县| 保山市| 长垣县| 新干县| 波密县| 启东市| 福泉市| 郑州市| 合阳县| 老河口市| 高雄县| 高要市| 禄劝| 新源县| 镇赉县| 内黄县| 龙川县| 江津市| 昌江|