【发布时间】:2016-07-04 09:55:36
【问题描述】:
我正在查看 javascript 中的 IIFE,据我所知,这只是关于如何编写 IIFE 的一种样式选择,并且以下两种方法都应该有效。
var sum = 0
(function test(n){
sum += n
}(1));
console.log(sum);
此日志:Uncaught TypeError: 0 is not a function。
或者,当我以 ! 开始 IIFE 时,它可以工作
var sum = 0
!function test(n){
sum += n
}(2);
console.log(sum) //logs 2
正如您所见,当我以 ! 开始 IIFE 时,它按预期工作。我现在很困惑,因为我认为这只是一个关于你如何实现 IIFE 的风格选择。谁能解释一下?
【问题讨论】:
-
一个简单的解决方案是,如果您不想在每一行都添加分号,请始终在您的 IIFE 之前添加一个分号。
标签: javascript iife