<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • JavaScript中的傳值與傳引用的理解

    時間:2024-10-12 06:06:58 JavaScript 我要投稿
    • 相關推薦

    關于JavaScript中的傳值與傳引用的理解

      1.傳值(by value)

      變量的值被復制出一份,與原來的值將不相干,也就是說即使新的值被修改,原來的值也不會改變,在JavaScript中基本類型都是傳值的.

      復制代碼 代碼如下:

      function testPassValue()

      {

      var m=1;

      var n=2;

      //將m,n的值復制一份,傳遞到passValue

      passValue(m,n);

      alert(m); //將是原有的值

      }

      function passValue(a,b)

      {

      a = a+b; //改變a的值,這里a只是原有值的一份copy

      alert(a);

      }

      輸出結果:

      3

      1

      2.傳引用(by reference).

      引用本身復制一份傳給function,引用指向的對象并沒有被復制傳遞(java中也是如此),在function中,如果改變了對象的屬性的值,由于和原來的引用指向的是同一個對象,因此在通過原來的引用訪問到的將是修改過的值;

      但是如果只是在function中將引用指向一個新的對象,將不會改變原對象的值,改變的只是復制的這一份引用.

      復制代碼 代碼如下:

      function testPassValue()

      {

      var date = new Date(2006,02,27);

      alert(date.getDate()); //輸出為 27

      //將date引用本身復制一份,傳遞到passReference,注意date所指向的對象并沒有被復制

      passReference(date);

      alert(date.getDate()); //輸出為12

      //同上

      changeReference(date);

      alert(date.getDate()); //輸出還為12

      }

      function passReference(da)

      {

      //由于da和原引用指向的是同一個對象,在function外,通過原有的引用訪問到的將是對象的日期屬性值,將是修改之后的值.

      da.setDate(12);

      }

      function changeReference(da)

      {

      //此時da引用實際上是原引用的一份copy,將引用本身重新賦值,將不會影響原引用

      da= new Date(2007,05,11);

      //將da引用指向一個新的對象,此時原引用指向的還是原來的對象

      alert(da.getDate()); // 輸出為11

      }

      3 特殊的String

      在JavaScript中,String也傳引用的. js中只有charAt方法,而沒有對應的修改方法,和java中的String相同,都具有不變性.

      復制代碼 代碼如下:

      var s1 = "hello";

      var s2 = "hell" + "o";

      if (s1 == s2)

      alert("s1 = s2"); //這句會不會執行? java用的熟的人可能會認為不會執行(這句話我頗有微詞,java中也是會執行的!),因為java中的==比較的是同一性. 事實上在js中對String==比較的是值是否相等,所以這句話會執行. 但是對其他的Object == 比較和java中一樣是同一性.

    【JavaScript中的傳值與傳引用的理解】相關文章:

    Java方法(函數)傳值和傳引用的問題10-07

    對javascript的理解08-08

    javascript面向對象中的對象怎么理解09-02

    淺談javascript中的單線程理解08-16

    有關深入理解JavaScript中的并行處理的介紹10-14

    理解JavaScript原型鏈教程09-02

    javascript的閉包概念怎么理解06-15

    JavaScript中的with關鍵字07-24

    在Java中執行JavaScript代碼07-14

    Javascript中typeof 用法歸納09-27

    主站蜘蛛池模板: jizz国产精品| 久久精品亚洲福利| 国产在线精品一区二区高清不卡 | 精品无码人妻久久久久久| 精品日韩亚洲AV无码一区二区三区| 国产精品狼人久久久久影院 | 欧美亚洲日本久久精品| 四虎成人欧美精品在永久在线| 久久棈精品久久久久久噜噜| 精品国产婷婷久久久| 久久国产精品-国产精品| 久久精品国产亚洲av日韩| 日韩精品成人亚洲专区| 国产精品成人99久久久久91gav| 69国产成人综合久久精品| 午夜天堂精品久久久久| 久热这里只有精品99国产6| 91久久精品电影| 精品久久久久久综合日本| 久久久一本精品99久久精品66| 亚洲国产成人精品女人久久久| 国产亚洲精品高清在线| 日韩精品免费视频| 国产精品久久久久9999高清| 国产一精品一AV一免费| 色婷婷在线精品国自产拍| 在线精品视频一区二区| 亚洲国产高清精品线久久 | 精品国内自产拍在线观看| 久久伊人精品青青草原高清| 成人国产精品高清在线观看| 色久综合网精品一区二区| 国产精品莉莉欧美自在线线 | 99久久婷婷免费国产综合精品| 亚洲国产精品乱码一区二区| 亚洲国产欧美日韩精品一区二区三区| 国产欧美日本亚洲精品一5| 国产成人精品一区二三区在线观看 | 亚洲级αV无码毛片久久精品| 亚洲?V无码乱码国产精品 | 国产精品1024香蕉在线观看|