看了很多书后,我仍然不太了解function objects
JS中的术语。根据我的阅读,以下是我的解释。如果我错了,请更正。
function myfunc(x){
return x;
}
解释:myfunc
是function object
由JS解释器在内部自动创建的,只要myfunc
声明了新函数,如上所示。
var myObj = new myfunc();
var mynewObj = new myfunc();
解释:myObj
和mynewObj
是的实例(对象),myfunc
因此可以说是function objects
我的解释正确吗?函数对象还有其他示例吗?
谢谢
bt
解释:
myfunc
是一个JS解释器在内部自动创建的函数对象,只要myfunc
声明了新函数,如上所示。
差不多,但是不完全是。myfunc
是一个标识符(identifier),它引用(指向)由JavaScript引擎创建的函数。1该函数是一个对象,因为所有函数都是JavaScript中的对象。如果愿意,可以将其称为“功能对象”。大多数人会称其为“功能”。(在JavaScript中,“函数”和“函数对象”是同义词。)
var myObj = new myfunc(); var mynewObj = new myfunc();
解释:
myObj
和mynewObj
是的实例(对象),myfunc
因此可以说是function objects
不,它们不是功能对象。它们只是对象。它们确实的确instanceof myfunc
意味着对象myfunc.prototype
指向它们的原型链中,但是将它们称为“函数对象”根本不是正确的,因为它们不是函数。
1 “ JavaScript引擎”-这是我优先使用的术语,而不是“ JavaScript解释器”,因为任何现代JavaScript引擎都是即时编译器加上运行时环境,而不是解释器。这是一个微妙的区别。
杰米·迪克森(Jamie Dixon)在评论中提到了该Function
功能。它只是一个基于源代码字符串创建函数的函数。在现代JavaScript中几乎没有用例(就像在现代JavaScript中几乎没有用例一样eval
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句