//一直以为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"};
时间: 2024-10-10 20:43:09