//一直以为js中有两种传递方式:按值传递,和按引用传递;看到有的说js只有一种传递方式按值传递;
//自己虽然之前有使用但是一直没有细化;今天群里回答被打脸了特意细化了一下;
var obj = {"a":"b"};
function change(obj){
return obj.a = "c";
//将obj传递进来,类似于 obj.a = "c"; retrun obj;
}
change(obj);
consonle.log(obj); => {a:"c"};
function transfrom(obj){
return obj = {"a":"e"};
//这里改变了对象的指针;但是只有在此函数内生效;外部obj的指向没有改变;很类似于
//var a = 1;
//function alter(a){
// var a = 2;
// return a;
//}
}
console.log(obj); => {a:'c'};
function alter(value){
return value = "d";
//类似于 var value = obj.a;
//然后将value传递进来;和obj已经没有关系;
}
}
alter(obj.a);
console.log(obj); => {a:"c"}; |
|