美文网首页
这道Js题也太有趣了吧

这道Js题也太有趣了吧

作者: tency小七 | 来源:发表于2018-08-02 19:06 被阅读0次
        var yideng = {
            n:1
        };
        yideng.x=yideng={
            n:2
        };
        console.log(yideng.x)
        //undefined
        //注意运算符的优先级
        //yideng.x=yideng={n:2}这里非常特殊,因为“.“的优先级要高于”=“
        //所以这里的顺序就是
        //1.先创建了一个x属性,值为undefined,挂在yideng下面
        //2.yideng的指向被改变,指向了{n:2}
        //3.刚才创建的x属性被赋值为{n:2}
        //4.此时yideng的指向已经被改变了,不再指向原有的对象,所以这里的yideng.x指向后来的对象,
        //5.后来的对象里面只有{n:2}
        //6.所以x属性是undefined
        //下面就来验证一下我们的想法(object是引用类型,是利用指针来指向堆里面的数据的)
        var yideng = {
            n:1
        };
        var yideng1 = yideng;//yideng1和yideng都指向n:1这里
        yideng.x = yideng = {
            n:2
        };
        console.log(yideng.x)//undefined
        console.log(yideng1.x)//2
    
    .png

    对于引用类型的复制,只是指针的复制,我们看看红宝书里面是怎么说的


    ![image](https://img.haomeiwen.com/i7728915/b2c4a4b1bd590f3e?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    相关文章

      网友评论

          本文标题:这道Js题也太有趣了吧

          本文链接:https://www.haomeiwen.com/subject/gsagmftx.html