gpt4 book ai didi

javascript - 为什么 ob.constructor.prototype == ob.__proto__

转载 作者:行者123 更新时间:2023-12-01 00:54:45 26 4
gpt4 key购买 nike

假设我们创建一个对象

var ob = {}

当我检查时

ob.constructor.prototype == ob.__proto__ 

两者都是一样的,怎么可能?

最佳答案

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

如果您对原型(prototype)继承有些熟悉,如果 ob 是使用 new 创建的,那么该行为可能会更容易理解(只是为了看看它是如何工作的 - 您应该'实际上使用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__:

class Foo {}

const f = new Foo();

console.log(f.constructor.prototype == f.__proto__);
// same as
console.log(f.constructor.prototype == Foo.prototype);
// same as
console.log(Foo.prototype == Foo.prototype);

关于javascript - 为什么 ob.constructor.prototype == ob.__proto__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56678801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com