如果(function foo(){})是一个表达式,由于' context' as"(括号)"是分组运算符,分组运算符只能包含表达式。
这导致了这个问题,你能在IIFE中声明一个函数还是仍然算作一个函数表达式?
答案 0 :(得分:5)
如果函数本身包含在括号中,它本身就成为一个表达式,因为括号创建了一个表达式上下文。
这不影响函数体中的任何语句或声明。
(function iife() {
function example() {
…
}
…
}());
这里,iife
的文字是一个表达式,因为它在(…())
内,但example
是一个常规声明,因为它是函数体的一部分。