var p = {
name : "张三"
}
function people1(n){
return n;
}
function people2(n){
n.name = "李四";
return n;
}
function people3(n){
n = {
name : "haojie"
}
console.log(n);
return n;
}
var p1 = people1(p);
// console.log(n); //报错,没有定义n
console.log(p); //{name: "张三"}
console.log(p1); //{name: "张三"}
var p2 = people2(p);
console.log(p); //{name: "李四"}
console.log(p2); //{name: "李四"}
var p3 = people3(p);
console.log(p); //{name: "李四"}
console.log(p3); //{name: "haojie"}
console.log(p); //{name: "李四"}
函数在传参的时候,如果为对象传参,传递的是对象的引用地址
1.如果使用object.property给改变对象属性的时候,改变的是对象中的真正的数据
2.如果使用
n = {
name : “haojie”
}
的形式,相当于在函数内部开辟了一块控件给n对象,对象随着函数的销毁而销毁