激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

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

時(shí)間:2024-10-12 06:06:58 JavaScript 我要投稿
  • 相關(guān)推薦

關(guān)于JavaScript中的傳值與傳引用的理解

  1.傳值(by value)

  變量的值被復制出一份,與原來(lái)的值將不相干,也就是說(shuō)即使新的值被修改,原來(lái)的值也不會(huì )改變,在JavaScript中基本類(lèi)型都是傳值的.

  復制代碼 代碼如下:

  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,引用指向的對象并沒(méi)有被復制傳遞(java中也是如此),在function中,如果改變了對象的屬性的值,由于和原來(lái)的引用指向的是同一個(gè)對象,因此在通過(guò)原來(lái)的引用訪(fǎng)問(wèn)到的將是修改過(guò)的值;

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

  復制代碼 代碼如下:

  function testPassValue()

  {

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

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

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

  passReference(date);

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

  //同上

  changeReference(date);

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

  }

  function passReference(da)

  {

  //由于da和原引用指向的是同一個(gè)對象,在function外,通過(guò)原有的引用訪(fǎng)問(wèn)到的將是對象的日期屬性值,將是修改之后的值.

  da.setDate(12);

  }

  function changeReference(da)

  {

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

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

  //將da引用指向一個(gè)新的對象,此時(shí)原引用指向的還是原來(lái)的對象

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

  }

  3 特殊的String

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

  復制代碼 代碼如下:

  var s1 = "hello";

  var s2 = "hell" + "o";

  if (s1 == s2)

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

【JavaScript中的傳值與傳引用的理解】相關(guān)文章:

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

對javascript的理解08-08

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

淺談javascript中的單線(xiàn)程理解08-16

有關(guān)深入理解JavaScript中的并行處理的介紹10-14

理解JavaScript原型鏈教程09-02

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

JavaScript中的with關(guān)鍵字07-24

在Java中執行JavaScript代碼07-14

Javascript中typeof 用法歸納09-27

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频