JavaScript中__proto__和Prototype的区别引起的困惑

3
所以,它可能会重复。请原谅我的无知。我只是想澄清事情。
function Person(name) {
    this.name = name;
}

现在你可以:
var eve = new Person("Eve");

所以,
eve.__proto__ == Person.prototype

返回true

很有道理。

eve.__proto__.__proto__ == Object.prototype

也有意义的是true

为什么Person.__proto__ == Object.prototype返回false

每个对象都是从Object原型继承下来的,对吧?

我错过了什么吗?

请用例子澄清事情。

我几乎迷失了方向。


3
可能是 __proto__ VS. prototype in JavaScript 的重复问题。 - Adrien Brunelat
1
我几乎迷失了方向。用户名检查通过。 - Harry
1个回答

0

proto 是用于解析方法等的查找链中实际使用的对象。当您使用 new 创建对象时,原型是用于构建 proto 的对象:

( new Foo ).__proto__ === Foo.prototype
( new Foo ).prototype === undefined

来自:JavaScript中的__proto__ VS. prototype


1
请勿复制答案,而应标记为重复。 - Adrien Brunelat
@AdrienBrunelat 我还不太清楚。你能解释一下为什么它要被关闭吗? - StrugglingCoder
@StrugglingCoder,对象的默认__proto__是Object.prototype。然而Person是一个函数,并且链接到Function.prototypePerson.__proto__ == Function.prototype - FredG
@StrugglingCoder,因为这个答案是与重复问题中的答案完全相同的副本,并且你需要回答你的问题的所有元素都在这个目标帖子中。 - Adrien Brunelat
@erhesto,我不理解你写的任何内容。“there are not” 没有任何意义,也没有与任何东西相连,“connection between [...] to [...]" 也没有任何意义。而且我甚至没有试图将“这个答案”和“OP问题”联系起来。 - Adrien Brunelat
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接