论JS函数传参时:值传递与引用传递的区别。

本文主要讲述JS中函数传参时值传递与引用传递的区别。

首先我们可以这样理解:

“值传递”是指:在函数中传递的是一个数值;

“引用传递”是指: 在函数中传递的是一个对象。

可以看出二者本质区别就是传递的数据类型不一样,

“值传递”传递的是一个值;“引用传递”传递的是一个对象。

下面看下代码:

1.值传递:

  var a = 1;         

function fn(a){

          a ++;

          return a;     

}

a = 1;

console.log(fn(a));               

console.log(a);

上面代码分别输出为2和1。

“值传递”在向参数传递值时,被传递的值会被复制给一个局部变量,

传递完后两个变量互不相干。

2.引用传递:

var obj = {

    name:"abc",

}

function fn(obj){

    obj.name = "abc";    //指向函数外部创建的对象

    obj = new Object();  //创建一个全新的对象,指向的不是外部创建的对象

    obj.name = "123";  //为新创建的对象添加属性

}

var obj = new Object();

fn(obj);

console.log(obj.name); //obj为外部创建的对象所以输出值为“abc”

上面代码输出的值是“abc”。

说明请看上述代码注释,如有错误,敬请指正。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容