-1

if (function foo(){}) 是一个表达式,因为“上下文”因为“(括号)”是一个分组运算符,分组运算符只能包含一个表达式。

这就引出了一个问题,你可以在 IIFE 中声明一个函数,还是它仍然算作一个函数表达式?

4

1 回答 1

5

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

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

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

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

于 2016-10-14T17:18:28.080 回答