hohocj 2019-10-19 13:40 采纳率: 0%
浏览 229

原型链下层为上层添加属性时无法添加,显示为undefined??

            var myobj={
                get a(){
                    return this._a_;
                },
                set a(val){
                    this._a_=val;
                }
            };
            var obj=Object.create(myobj);
            obj.a=6;
            console.log(obj.a);//6
            console.log(obj.hasOwnProperty("a"));//false
            console.log(myobj.a);//undefined
            console.log(myobj.hasOwnProperty("a"));//true
          console.log(obj.__proto__);
            console.log(myobj);
            console.log(obj);

下面是输出结果图片说明
可以看到,obj.__proto__与myobj相同,而单独在obj中查看它的__proto__又与输出来的不一样??这是为啥呢?不是把obj关联到了myobj上面吗?
obj.a=6,到底是存到哪里去了?
有那个大佬能回答一下吗?萌新一个,自学前端中,有点难a

  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2019-10-19 14:16
    关注

    obj 是 Object.create 浅拷贝出来的新对象,它的属性值 a 是自己的。
    而原来旧的对象 objObj 还是旧的。但是如果反着来的话,myobj 先设置 a 属性了,然后 create 创建出来的新对象也是具有该值的,这就是复制的好处,直接获取原对象的属性及方法。

    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建