javascript 变量赋值和 参数传递

先上结论!

变量赋值:

  基本类型:按照值传递 (也就是会复制一份)

  引用类型:按照引用传递(也就是会传递对象的引用)

参数传递

  基本类型:按照值传递 (也就是会复制一份)

  引用类型:按照值传递 (也就是会复制一份)//此处有疑惑!!!!

如果以上结论大家都知道,可以不用再向下看了……

 

变量赋值--基本类型
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);

 

posted @ 2017-01-08 10:44  _白马非马  阅读(473)  评论(0编辑  收藏  举报