先上结论!
变量赋值:
基本类型:按照值传递 (也就是会复制一份)
引用类型:按照引用传递(也就是会传递对象的引用)
参数传递
基本类型:按照值传递 (也就是会复制一份)
引用类型:按照值传递 (也就是会复制一份)//此处有疑惑!!!!
如果以上结论大家都知道,可以不用再向下看了……
变量赋值--基本类型
var num1 = 1;
var num2 = num1;
num2= 2;
alert(num1);//1
变量赋值--对象类型 var obj1 = new Object(); //修改指向 var obj2 = obj1; obj2.name = 'haha'; alert(obj2.name); //结果是 haha
function setName(obj){ obj.name='haha'; obj= new Object(); obj.name='wuwuwu'; } var person= new Object(); alert(person.name);//按照作者的话 此处是haha 而不是wuwuwu说明是值传递而不是引用(感觉这个例子有问题啊) // 可是我用变量赋值 结果依然是haha 而不是wuwu。 var obj1 = new Object(); //修改指向 var obj2 = obj1; obj2.name = 'haha'; obj2= new Object(); obj2.name='wuwuwu'; alert(obj1.name);