Why use (function(){})() or !function(){}()?
我在阅读JavaScript时,函数(){}()的优点是什么(function(){})()? 然后它打了我,为什么用:
有什么具体原因吗?
RobG的回答略有不同。
许多脚本在一个函数中包含整个程序,以确保正确的范围。然后使用末尾的双括号立即运行此函数。但是,这与定义可在页面中使用但最初不运行的功能的程序略有不同。
这两种情况之间的唯一区别是最后两个字符(添加了双括号)。由于这些程序可能是非常长的程序,因此初始括号表示"这将立即运行"。
该程序是否有必要运行?是否对查看代码并尝试理解代码的人有帮助吗?是。
我想你在问为什么用:
1 | var fn = (function(){}()); |
与:
1 | var fn = function(){}(); |
对我来说简单的答案是,通常RHS上的函数很长,直到我到达底部并看到结束
完整的解释是在Peter Michaux的一对重要的Parens中。
这取决于你写这个的地方。
通过使用括号或not运算符,可以将其强制解释为函数表达式,它不需要名称。
如果它将被视为表达式,您可以省略括号或运算符。