Javascript 语言是值传递还是引用传递?

一个例子:

function changeStuff(a,b,c){

    a=a*10;

    b.item="changed";

    c={item:"changed"};

}

varnum=10;

varobj1={item:"unchanged"};

varobj2{item:"unchanged"};

changeStuff(num,obj1,obj2);

console.log(num);

console.log(obj1.item);

console.log(obj2.item);

结果如下:

10

changed

unchanged

Javascript 是纯粹的值传递. 

It's always pass by value, but for objects the value of the variable is a reference. Because of this, when you pass an object and change itsmembers, those changes persist outside of the function. This makes itlooklike pass by reference. But if you actually change the value of the object variable you will see that the change does not persist, proving it's really pass by value.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,968评论 0 23
  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的阅读 13,564评论 5 6
  • 加班过程中,窗外响起了歌曲,我听过好几次就是不知道歌名字,今天问同事知道啦。于是,就列举啦几个歌手,说是他们的歌曲...
    桥墩阅读 190评论 0 4
  • 终于可以在无孔不入的加班生活中解脱出来,给自己放个假了。但还是忍不住去了一趟上班的地方,回想过来,三百六十五天差不...
    溫雯吻問阅读 302评论 0 2
  • 爱情是什么,是我们心底那份最纯真的感伤,不管时间再怎么样的流逝,当我们回忆起过往的每一个瞬间,是那激动的心情,肆虐...
    Heminway阅读 154评论 0 0