我一直看到 IIFE。
我看到一系列处于开放状态的语句,即它们没有被括号括起来。
为什么我没有看到一个函数及其调用
// lib code...we are inside an IIFE
function fooName () {
}
fooName();
// lib code...
当不需要闭包时立即调用一系列语句,即不需要持久或静态局部变量?
这个习语/模式有问题吗?它有名字吗?用过吗?
非“小”代码
function manageGlobal() {
if (win.$A && win.$A.cg) {
$A.extend($A, window.$A);
} else if (window.$A) {
$A_previous = window.$A;
} else {
$A = window.$A = {};
}
}
manageGlobal();
最佳答案
这只是一个函数声明及其调用。
它没有名称,因为它没有特异性:它只是该语言的基本明显用法。
顺便说一下,它比 IIFE 没有优势:
- 更详细
- 它将名称添加到全局(或本地)命名空间。
如果您不需要闭包,并且不需要避免命名空间污染(因为您处于小型 IIFE 中),那么您可以直接在函数中包含代码,而不是声明它。
关于javascript - 使用命名函数比 IIFE 有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15075215/