var obj2 = Object.create(Object); obj2 的__proto__ 指向的是谁?

来源:8-2 再谈原型链

xiterjia

2016-04-15 21:10

var obj = {x:1};
obj.__proto__ === Object.prototype;//true
这样创建出来的变量的__proto__ 都是指向Object的prototype;
var obj2 = Object.create(Object);
通过Object.create创建出来的对象,它的__proto__指向括号里面的prototype;
如果按这样的话,那obj2.__proto__ === Object.prototype ;//应该为true
但是这样运行后为false
这是为什么呢。?


写回答 关注

2回答

  • xiterjia
    2016-05-02 16:42:33

    嗯嗯,非常感谢,看到Object.create(X) X就是作为新创建对象的原型! 

    看到这里就理解了。

  • xiterjia
    2016-04-15 21:16:47

    哦,知道了,括号里面应该是Object.prototype,这样的话,obj2.__proto__ === Object.prototype 才成立,

    但是话又说回来,那我上面这样写的话,obj2的__proto__指向的是谁呢,又跟谁能===起来??

    慕妹5044...

    我试了下应该是指向Object. Object.create(X) X就是作为新创建对象的原型! 如果 var obj2 = Object.create(X); 那么 obj2.__proto__ === X 。

    2016-04-22 14:12:35

    共 1 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题