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

时间:2016-10-14 17:13:48

标签: javascript function iife function-declaration function-expression

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

这导致了这个问题,你能在IIFE中声明一个函数还是仍然算作一个函数表达式?

1 个答案:

答案 0 :(得分:5)

如果函数本身包含在括号中,它本身就成为一个表达式,因为括号创建了一个表达式上下文。

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

(function iife() {
     function example() {
          …
     }
     …
}());

这里,iife的文字是一个表达式,因为它在(…())内,但example是一个常规声明,因为它是函数体的一部分。