我有这个功能:
function fff(){}
这是一个function它是一个实例Function constructor
所以fff.__proto__应该告诉我:function Function() { [native code] }
但事实并非如此.
表明 : function Empty() {}

这只是我看到的constructor财产__proto__function Function() { [native code] }
题 :
这个function Empty() {}功能是什么
,为什么fff.__proto__不告诉我:function Function() { [native code] } ?
注:我知道,__proto__是在查找链用来解决方法等实际的对象prototype是使用对象建立 __proto__,当你创建一个对象new.
但是又一次:函数fff是一个在幕后通过newing实例化的函数Function constructor.......所以?
你是误会__proto__.
__proto__返回对象继承的原型值; 不是它的构造函数.
所有功能(包括Function其自身)都继承Function.prototype.
因此,Function.__proto__ === Function.prototype是真的.
该规范的第15.3.4节中规定了此对象:
Function原型对象本身就是一个Function对象(它
[[Class]]是"Function"),当被调用时,它接受任何参数并返回undefined.
也可以看看
15.3.4.2 Function.prototype.toString()
返回函数的依赖于实现的表示.此表示具有FunctionDeclaration的语法.请特别注意,表示字符串中的空格,行终止符和分号的使用和放置取决于实现.
该
toString功能不是通用的; 如果此值不是Function对象,则抛出TypeError异常.因此,它不能转移到其他种类的对象用作方法.