IIFE内部的调用函数

1 javascript iife

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

(function() {
  f(1)
}())
Run Code Online (Sandbox Code Playgroud)

为什么这段代码会抛出错误?起初,我认为问题与 IIFE 的语法不正确有关,但后来我了解到这种语法也很合适

Nin*_*olz 5

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

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

(function() {
  f(1)
}())
Run Code Online (Sandbox Code Playgroud)