你不知道的JavaScript笔记2

IIFE 立即执行函数表达式 (Immediately Invoked Function Expression)

  • 将一个参数命名为 undefined,但是在对应的位置不传入任何值,这样就可以
    保证在代码块中 undefined 标识符的值真的是 undefined:
undefined = true;
// 给其他代码挖了一个大坑!绝对不要这样做!
(function IIFE(undefined) {
    var a;
    if (a === undefined) {
        console.log("Undefined is safe here!");
    }
}
)()
  • 是倒置代码的运行顺序序,将需要运行的函数放在第二位,在 IIFE
    执行之后当作参数传递进去。
var a = 2;
(function IIFE(def) {
    def(window);
}
)(function def(global) {
    var a = 3;
    console.log(a);
    // 3
    console.log(global.a);
    // 2
});

这种模式在 UMD(Universal Module Definition)项目中被广泛使用。尽管这种模式略显冗长,但有些人认为它更易理解

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容