gpt4 book ai didi

javascript - 什么时候使用 __proto__ 什么时候使用原型(prototype)

转载 作者:行者123 更新时间:2023-11-30 13:04:28 25 4
gpt4 key购买 nike

所有,我总是对对象的__proto__prototype属性感到困惑,特别是在原型(prototype)继承链中,假设有一个名为test的对象,代码如下。

test.add();//try to call a method name add.

在我的理解中,我画了一个图表来演示搜索的流程。但我不确定它是否正确。请帮助审查它。谢谢。

enter image description here

根据 Minko Gechev 的回答更正了它。

enter image description here

最佳答案

只有函数有 prototype 属性,但任何对象都有 __proto__ 属性。

通常,显式更改 __proto__ 属性并不是一个好主意,最好使用类似 Object.create 的东西。

这是一个例子:

function Person() {
}
var proto = { bar: 'baz' };
Person.prototype = proto;

通过这种方式,您使用构造函数 Person 创建的任何对象都将具有引用 proto__proto__ 属性

作为结论,我们可以说:

prototype 属性仅用于构造函数,它设置将使用此构造函数创建的所有对象的 __proto__ 属性。当解释器正在寻找给定对象 foo 的属性时,它首先使用对象 foo 然后是 foo.__proto__ 然后是 foo .__proto__.__proto__ 等它是否找到该属性。

关于javascript - 什么时候使用 __proto__ 什么时候使用原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198371/

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