Javascript 为什么ob.constructor.prototype==ob.\uu proto__
假设我们创建了一个对象Javascript 为什么ob.constructor.prototype==ob.\uu proto__,javascript,prototype,Javascript,Prototype,假设我们创建了一个对象 var ob = {} 当我检查 ob.constructor.prototype == ob.__proto__ 两者都是相同的,怎么可能呢?ob是一个普通的对象,所以它的构造函数(即,obj.constructor)是对象。\uuuu proto\uuuu指向某物的内部原型,普通对象的内部原型是对象。prototype 如果您对原型继承比较熟悉,那么如果ob是使用new创建的(只是看看它是如何工作的-您不应该实际使用new Object),那么这种行为可能会更容
var ob = {}
当我检查
ob.constructor.prototype == ob.__proto__
两者都是相同的,怎么可能呢?
ob
是一个普通的对象,所以它的构造函数(即,obj.constructor
)是对象。\uuuu proto\uuuu
指向某物的内部原型,普通对象的内部原型是对象。prototype
如果您对原型继承比较熟悉,那么如果ob
是使用new
创建的(只是看看它是如何工作的-您不应该实际使用new Object
),那么这种行为可能会更容易理解:
var ob=新对象();
log(ob.constructor.prototype==ob.\uuuu proto\uuuu);
//同
log(ob.constructor.prototype==Object.prototype);
//同
log(Object.prototype==Object.prototype)
ob
是一个普通对象,因此它的构造函数(即,obj.constructor
)是对象
。\uuuu proto\uuuu
指向某物的内部原型,普通对象的内部原型是对象。prototype
如果您对原型继承比较熟悉,那么如果ob
是使用new
创建的(只是看看它是如何工作的-您不应该实际使用new Object
),那么这种行为可能会更容易理解:
var ob=新对象();
log(ob.constructor.prototype==ob.\uuuu proto\uuuu);
//同
log(ob.constructor.prototype==Object.prototype);
//同
log(Object.prototype==Object.prototype)代码>