【发布时间】:2016-10-14 17:13:48
【问题描述】:
如果 (function foo(){}) 是一个表达式,因为“上下文”因为“(括号)”是一个分组运算符,分组运算符只能包含一个表达式。
这导致了一个问题,你可以在 IIFE 中声明一个函数,否则它仍然算作一个函数表达式?
【问题讨论】:
标签: javascript function iife function-declaration function-expression
如果 (function foo(){}) 是一个表达式,因为“上下文”因为“(括号)”是一个分组运算符,分组运算符只能包含一个表达式。
这导致了一个问题,你可以在 IIFE 中声明一个函数,否则它仍然算作一个函数表达式?
【问题讨论】:
标签: javascript function iife function-declaration function-expression
如果用括号括起来,函数本身就变成了一个表达式,因为括号创建了一个表达式上下文。
这不会影响函数体中的任何语句或声明。
(function iife() {
function example() {
…
}
…
}());
这里,iife 的文字是一个表达式,因为它在 (…()) 内部,但 example 像往常一样是一个声明,因为它是函数体的一部分。
【讨论】: