引用类型的传递-----写出输出并解释
举个栗子
function Person(name, age) {
this.name = name;
this.age = age;
}
function f1(person) {
//相当于var person ,只是没有显示出来,在这里person指向p的地址
person.name = "amy"; //将p地址中的名字改成amy
person = new Person("tom", 10); //创建新的对象名为person,将person的指针指向新的地址
}
var p = new Person("mary", 19); //创建一个p对象,名字为mary,年龄19
console.log(p); // Person {name: "mary", age: 19}
f1(p); //调用f1
console.log(p); //Person {name: "amy", age: 19}
在上面的代码中,因为f1函数传入的是p对象,因此一开始person和p指向同一个地址,但当person = new Person(“tom”,10);后,person就指向了一个新的地址
输出:
解释:
刚刚调用f1,(在语句person = new Person(“tom”, 10)之前)
在语句person = new Person(“tom”, 10)之后(相当于person有了新的地址,与p无关)