gpt4 book ai didi

javascript - 如果函数是 javascript 中的对象,为什么 function.constructor 指向函数而不是对象?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:24 25 4
gpt4 key购买 nike

当像这样从窗口对象创建以下函数时,

         function userInfo() {};

为什么 userInfo.constructor 显示函数而不是对象,因为函数是对象?

它甚至在使用以下内容时显示 Function 而不是 Object,

         Function.constructor

最佳答案

userInfo.constructorFunction 因为:

  1. userInfo 没有自己的 constructor 属性。
  2. userInfo 的 [[Prototype]] 内部槽的值为 Function.prototype
  3. Function.prototype 有一个自己的 constructor 属性,其值为 Function

Function.constructor 也是 Function 因为同样的原因:

  1. Function 没有自己的 constructor 属性。
  2. Function 的 [[Prototype]] 内部槽的值为 Function.prototype
  3. Function.prototype 有一个自己的 constructor 属性,其值为 Function

也就是说,Function 实例(如 userInfoFunction 本身)从 继承了一个 constructor 属性>Function.prototype,可用于了解它们是 Function 的实例。

关于javascript - 如果函数是 javascript 中的对象,为什么 function.constructor 指向函数而不是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35709103/

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