在 IIFE 中调用函数

Call function inside IIFE

let f = function(x) {
  alert(x)
}

(function() {
  f(1)
}())

为什么这段代码会抛出错误?一开始我以为是IIFE的语法不对,后来发现这个语法也是可以的

这是少数情况之一,需要分号将函数表达式与使用以下括号的调用分隔开。

let f = function(x) {
  alert(x)
}; // <-------------------

(function() {
  f(1)
}())