我一直在读 Stoyan Stefanov 写的《面向对象的 Javascript》一书。我看到这句话:
function 实际上是一个用“Function”构造函数(大写 F)构建的对象。
作者用一些很好的例子证明了这一点。然而,基于这个陈述,我得到了这个我自己无法回答的问题。由于“函数”构造函数是function,所以“函数”function is an Object,然后是“函数”object需要另一个构造函数来构建它,并且另一个构造函数又是一个对象(因为它是一个function).
好吧,我最终得出了这个无尽的逻辑。有人可以帮我指出我的想法中的错误点吗?
“Function”函数是一个对象,那么“Function”对象需要另一个构造函数来构建它
No. Function
是一个本机内置对象,其属性和行为定义在EcmaScript 规范第 15.3 节 http://ecma-international.org/ecma-262/5.1/#sec-15.3。它不是由 js 函数构建的。
可以这样想:在您的 EcmaScript 环境代码中的某个位置有一个函数用于构建函数对象 - 每当您的脚本遇到函数表达式或声明时就会调用它。全球Function
function 是该函数的包装器,以便脚本可以访问它。该函数返回的所有函数对象都继承自Function.prototype
对象 - 看起来它们是由Function
。还有Function.prototype.constructor
所有函数都继承的属性被定义为 http://ecma-international.org/ecma-262/5.1/#sec-15.3.4.1指向Function
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)