您的位置:首页 > Web前端 > JavaScript

js 函数参数按值传递的理解

2018-03-26 15:01 375 查看
例子选自《javas高级程序设计》
1.基本类型按值传递function addTen(num) {
num += 10;
return num;
}
var count = 20;
var result = addTen(count);
alert(count); //20,没有变化

alert(result); //30在执行addTen(count)时,将20这个值复制一份传递到了num中,addTen运行后,num为30,于是result等于30,而count依然是20
2. 引用类型值的传递function setName(obj) {
obj.name = "Nicholas";
obj = new Object();
obj.name = "Greg";
}
var person = new Object();
setName(person);

alert(person.name); //"Nicholas"setName运行后,将person的引用复制一份,使得参数中的obj指向了与person相同的引用,此时修改obj.name的值,person.name也会变,接下来再将obj指向一个新的对象,这个时候person和obj已经没有关系,person.name的值不会改变
总结:函数参数传递过程中之所以说传递值,即相当于复制了一份给参数;假如是引用,则函数中的参数和传入值完全是同一个值,那么后面对obj修改,person的值都会随之改变,而验证结果并没有因为obj指向了新对象就变,所以引用的传递还是按值传递,或者说,把引用的地址复制了一份给参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js函数 参数传递