首页 > 解决方案 > javascript中立即调用的函数表达式

问题描述

javascript中立即调用函数表达式最后加()的原因是什么

(function() {
    // Code that runs in your function
})( /* this parenthesis in the end */ )

标签: javascriptparenthesesiife

解决方案


立即调用的函数表达式是:

(function() { ... })立即调用函数表达式()

详细地说,(function() { ... })只是定义函数,而定义但从未调用的函数绝对什么都不做。

为了执行函数中的代码,需要调用它(通常称为调用函数)。这就是为什么您将函数定义包装在括号中(使其成为计算函数引用的表达式),然后立即使用任何参数调用(或调用)该函数()- 或者像您的示例中那样不使用参数。

它或多或少等同于这样做:

const someFunc = (function() { ... }); //merely assigns a function, the code inside doesn't run
someFunc(); //invokes the function (but in this case it isn't immediate)

除了在这种情况下,您已将函数引用绑定到变量,因此它不再是 IIFE。


推荐阅读