声明函数的目的是什么!函数(){code}();
What is the purpose of declaring a function like !function(){ code }();
声明以下函数的目的是什么:
!function(){ code }();
为什么选择!
?
它告诉解释器后面的函数关键字是函数表达式的一部分,而不是声明。这允许函数立即执行,创建一个名称空间的封装模块。
更常见的方法是用parens包装函数关键字和正文。这有时被称为"IIFE"或模块模式。
在JavaScript中,您可以一次性声明和执行一个函数,但这样做:
function() { /* ... */ }();
是语法错误。
您可以通过强制解析器将函数声明识别为表达式的一部分,而不是语句:来实现它
(function() { /* ... */ }());
您看到的是另一种执行此操作的方法,即使用!
运算符。它将否定函数的结果,但在这里,该结果(如果有)无论如何都会被忽略。
!function() { /* ... */ }();
换句话说,这有点像黑客。
进一步阅读:
- https://en.wikipedia.org/wiki/Immediately-invoked_function_expression
- http://benalman.com/news/2010/11/immediately-invoked-function-expression/
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 我可以在json对象中添加一个函数吗
- 从Dart Code调用匿名Javascript函数
- 在 jQuery Code 中调用 JavaScript 函数
- 从Javascript调用Code-Behind函数
- 这个语法是什么意思?(函数(){//code})()
- 使用Parse Code Cloud Javascript函数更改Parse列的值
- 声明函数的目的是什么!函数(){code}();
- code-behind-从JavaScript确认框调用函数
- 访问Parse.com Cloud Code beforeSave函数中的原始字段
- 如何将输入数组传递给JavaScript函数,以便在Visual Studio Code中进行测试