gpt4 book ai didi

javascript - 这个对象 'see' 它的继承属性如何?

转载 作者:行者123 更新时间:2023-12-01 15:16:24 25 4
gpt4 key购买 nike

我刚刚发现 __proto__不是对象的属性。它是 Object.prototype 的访问器属性(source)。 Chrome 的控制台肯定让我很困惑:/。
所以当我们看到类似的东西时:
enter image description here
我们做这样的事情:o = {}; o.valueOf()一步一步发生了什么?我不太确定 Object.prototype 的作用是什么。 __proto__现在必须玩,如果它有任何帮助。
我正在重新阅读我保存的 MDN 文档和文章,但对于我的 o 的情况,我将不胜感激。例如,与此同时。
我的猜测:
我知道Object.prototype.__proto__是一个访问器属性,它将返回一个“特殊的、隐藏的”[[原型(prototype)]]“内部插槽”/属性。
o = {}; o.valueOf() 的情况下, 我怀疑 o不知何故有能力访问Object.prototype.__proto__这将返回/引用 Object.prototype .这对我来说根本没有意义(如果你能看到 Object.prototype.__proto__ 为什么不直接看 Object.prototype 所以我确定这是不对的。

最佳答案

What is happening step-by-step? I'm not quite sure what role Object.prototype.__proto__ has to play now.

.__proto__访问者 Object.prototype在属性访问中绝对没有任何作用。您没有明确使用它,也不应该这样做。
当您访问 o.valueOf , 引擎首先检查对象 o有自己的 valueOf属性(property)。你的情况不是这样。然后它进入原型(prototype)链,即引擎确实访问内部 [[prototype]] 插槽以找到 Object.prototype , 其中 o继承自。这个对象确实有 valueOf属性,因此引擎确实访问它并使用它所持有的函数值。然后调用属性访问的结果。
引擎可以直接访问内部插槽,不需要使用任何语言级别的实体。同样,devtools 调试器 Object.getPrototypeOf函数或 .__proto__ getter 可以访问这些内部数据结构,因为这就是引擎实现它们工作的方式。

关于javascript - 这个对象 'see' 它的继承属性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63308262/

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