IIFE 表达式中是否包含所有函数?
Are all functions inside of an IIFE expressions?
If (function foo(){}) 是一个表达式,因为 'context' 因为“(Parenthesis)”是一个分组运算符,分组运算符只能包含一个表达式。
问题来了,你能在 IIFE 中声明一个函数吗?否则它仍然算作一个函数表达式?
如果函数被包裹在括号中,它本身就变成了一个表达式,因为括号创建了一个表达式上下文。
这不会影响函数体中的任何语句或声明。
(function iife() {
function example() {
…
}
…
}());
在这里,iife
的字面量是一个表达式,因为它在 (…())
内部,但 example
照常是一个声明,因为它是函数体的一部分。
If (function foo(){}) 是一个表达式,因为 'context' 因为“(Parenthesis)”是一个分组运算符,分组运算符只能包含一个表达式。
问题来了,你能在 IIFE 中声明一个函数吗?否则它仍然算作一个函数表达式?
如果函数被包裹在括号中,它本身就变成了一个表达式,因为括号创建了一个表达式上下文。
这不会影响函数体中的任何语句或声明。
(function iife() {
function example() {
…
}
…
}());
在这里,iife
的字面量是一个表达式,因为它在 (…())
内部,但 example
照常是一个声明,因为它是函数体的一部分。