所有功能都在IIFE表达式中吗?

Ale*_*ide -1 javascript function function-declaration function-expression iife

如果(function foo(){})是一个表达式,由于'context'为"(括号)"是一个分组运算符,分组运算符只能包含一个表达式.

这导致了这个问题,您能否在IIFE中声明一个函数,或者它仍然算作一个函数表达式?

Ber*_*rgi 5

如果函数本身包含在括号中,则该函数本身将成为表达式,因为括号创建表达式上下文.

这不会影响函数体中的任何语句或声明.

(function iife() {
     function example() {
          …
     }
     …
}());
Run Code Online (Sandbox Code Playgroud)

这里,文字for iife是一个表达式,因为它在里面(…()),但是example像往常一样是一个声明,因为它是函数体的一部分.