这道Js题也太有趣了吧

    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](http://upload-images.jianshu.io/upload_images/7728915-b2c4a4b1bd590f3e?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,159评论 1 32
  • 一 语法: border-radius:none | <length>{1,4} [/ <length>{1,4}...
    飘雪飞舞阅读 1,070评论 0 0
  • (一) 对于温凉来说,顾城是她心头的白月光。 好吧,温凉并没有读过张爱玲的书,只是偶然间听过这样一个比喻,她也不知...
    轻轻呀阅读 3,696评论 46 73
  • 拉选票 今天有一位同志,在微信圈为自己的一位亲戚小朋友拉选票。我想就此发表一下我个人看法: 在信息...
    你健康我快乐_61fc阅读 899评论 0 1
  • 今天又重复看了电影爆裂鼓手! 看着男主怎么由一个青涩的音乐学院新生变成了可以随意虐人的大卡,看着他为了打鼓为了提升...
    collinsun阅读 304评论 0 0