javascript - javascript中立即调用的函数表达式
问题描述
javascript中立即调用函数表达式最后加()的原因是什么
(function() {
// Code that runs in your function
})( /* this parenthesis in the end */ )
解决方案
立即调用的函数表达式是:
(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。
推荐阅读
- python - 使用 Python 为 MongoDB 连接创建一个连接池作为线程
- python - 替换列表中的值会给出错误消息:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
- java - 在注释中使用属性值?
- android - 是否可以检测到当前应用程序的卸载?
- javascript - 如何使用 dygraphs 绘制垂直条
- javascript - pdf(mpdf)文件在javascript中损坏
- c - 如何强制 GCC 生成特定的浮点指令
- reactjs - 如何为 react-table 使用第三方类型声明?
- python - 打印正则表达式的所有子字符串
- python - 如何在另一个文件 test_1.py 中处理在 pytest 的 setup 和 teardown 方法中生成的会话