gpt4 book ai didi

JavaScript 函数原型(prototype) : Object, 函数,还是两者?

转载 作者:行者123 更新时间:2023-11-29 15:39:45 26 4
gpt4 key购买 nike

Function 在 JavaScript 函数的原型(prototype)链中的什么位置?

工作示例:在 Chrome 的控制台中,我创建了以下函数:

> var f = function() { alert(1); }

使用 f() 调用会正确产生数字 1 的警报。在使用以下控制台语句检查函数时:

> console.dir(f)

请注意原型(prototype)是如何以键/值对 prototype: Object 的形式列为 Object 的,这意味着函数 f 直接继承自 Object。很公平; JavaScript 中的数组和其他实体也继承自 Object。

冲突源于以下观察。输入以下命令:

f instanceof Function

这导致 true

据我了解,用户创建的函数继承自 Function 对象,而 Function 对象又继承自 Object;然而,对于我来说,我无法通过检查 f 的原型(prototype)链找到它。

函数 f 的原型(prototype)链中的 Function 在哪里?

泰 Vim

最佳答案

Where is Function in the prototype chain for function f?

Function 本身不是,它是 Function.prototype。它应该在函数 f 的“下方”:

         f
|
v
Function.prototype
|
v
Object.prototype
|
v
null

Notice how the prototype is listed as Object, in the form of key/value pair prototype: Object

您看到的 f.prototype 属性是函数自己的原型(prototype)对象 - 假设 f 是一个构造函数,那么所有 new f 实例都将继承自 f.prototype

meaning that function f inherits directly from Object.

没有。公共(public) .prototype 属性不得与内部原型(prototype)链(通常表示为 [[prototype]] 内部属性混淆)。您可以使用 Object.getPrototypeOf 访问原型(prototype)链。有关更多信息,请访问 __proto__ VS. prototype in JavaScript , 也许 Why functions prototype is chained repeatedly?http://eloquentjavascript.net/chapter8.html .

关于JavaScript 函数原型(prototype) : Object, 函数,还是两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21319594/

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