JS传递参数
ECMAScript中在向参数传递基本类型的值时,被传递的值会被赋值给一个局部变量(即命名参数,或者用ECMAScript的概念来说,就是arguments对象中的一个元素)。
在向参数传递引用类型值时,会把这个值在内存中的地址赋值给一个arguments的一个(局部)变量,因此这个局部变量的变化会反应在函数的外部。这里引申出两种情况:
- 修改这个参数的属性,会作用于全局。
- 修改这个参数的引用(将这个参数赋值为新值或者新对象),不作用于全局,因为改变了引用的地址。
function setName(obj){
obj.name = "gtt";
obj = new Object();
obj.name = "zyk";
}
var person = new Object();
setName(person); // "gtt"
标签:值时,obj,JS,传递,参数,赋值
From: https://www.cnblogs.com/zhiwu/p/17649675.html