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

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

         function userInfo() {};

为什么函数是对象,userInfo.constructor如何显示Function而不是Object?

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

         Function.constructor

最佳答案 userInfo.constructor是Function,因为:

> userInfo没有自己的构造函数属性.
> userInfo的[[Prototype]]内部插槽的值是Function.prototype.
> Function.prototype有一个自己的构造函数属性,其值为Function.

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

>函数没有自己的构造函数属性.
> Function的[[Prototype]]内部插槽的值是Function.prototype.
> Function.prototype有一个自己的构造函数属性,其值为Function.

也就是说,Function实例(如userInfo或Function本身)从Function.prototype继承构造函数属性,可用于知道它们是Function的实例.

点赞