爱淘FE

Posted by:
Mickey

每件事最后都会是好事,如果不是好事,说明还没到最后

832

关于javascript函数传引用类型参数

不多说,上栗子:

    var aa={},bb={};
    function changeit(obj, v){
        obj = v;
    }
    function changeit1(obj, v){
        obj.data = v;
    }

    changeit(aa, {data:"test"});
    console.dir(aa);//{}

    changeit1(bb, {data:"test1"});
    console.dir(bb);//{data:{data:"test"}}

changeit1 里面用引用来找到实际对象,然后更改实际对象
changeit 里面改的是引用,对实际对象没有影响

changeit 函数里面就相当于:

obj = {};
v= {data:'test'};
obj = v; // 这里改的是 changeit 里面的变量 obj,这时候 obj 已经不指向 aa 了

由此可引出更进一步的讨论……待续

发表评论


back up ↑