为什么ob.constructor.prototype == ob .__ proto__

时间:2019-06-20 04:00:23

标签: javascript prototype

说,如果我们创建对象

var ob = {}

当我检查

ob.constructor.prototype == ob.__proto__ 

两者都一样怎么可能?

1 个答案:

答案 0 :(得分:2)

ob是一个普通对象,因此其构造函数(即obj.constructor)为Object__proto__指向某物的内部原型,而普通对象的内部原型为Object.prototype

如果您对原型继承有所了解,那么如果ob是使用new创建的,则该行为可能更容易理解(只是为了了解其工作原理-您实际上不应使用{{1 }}):

new Object

使用var ob = new Object(); console.log(ob.constructor.prototype == ob.__proto__); // same as console.log(ob.constructor.prototype == Object.prototype); // same as console.log(Object.prototype == Object.prototype);创建的任何内容都可以看到相同的行为-其new将是其constructor.prototype

__proto__