function setName(obj){
obj.name='test';
obj=new Object()
obj.name='test1';
}
var person=new Object();
setName(person);
console.log(person.name);//输出test
上面中函数的参数是按值传递的,假如是按照引用传递obj被修改的时候,person也被修改了。
在引用类型传递给函数的参数的时候,person保存的值被复制了一份给函数的参数,该值是指向对象的应用。函数中obj=new Object()相当于修改了内部的obj,这时obj不再指向person指向的对象。