参数的值传递
var person = {
name: 'zhan',
age: 20
}
function setName(obj) { // 传入的只是person对象在栈内存中的引用值
console.log(obj)//person
obj = {}; // 将传入的引用指向另外的值 //新建一个对象把该新对象在栈内存中的引用值赋给obj,
// 此时obj的引用指向新对象,并不改变person的引用值
obj.name = 'hui'; // 这里只是修改新对象的属性值
console.log(person.name);//zh
}
setName(person);
console.log(person.name); // zhan未被改变
function set(obj) {
console.log(obj)//person
obj.name='hui'//此处的obj的值是person的引用值,和person指向同一个对象,并修改了该对象的name属性值
}
set(person);
console.log(person.name)//hui