阅读开源:一系列IIFE

时间:2015-05-17 04:24:32

标签: javascript open-source iife

我一直在阅读试图模仿Medium.com的Medium.js Open Source Project

在阅读时,我注意到代码中有一个模式。主要是,每隔一段时间就会召集一次IIFE来做各种各样的事情。

(function(Medium) {
      "use strict";
      //do stuff  
})(Medium);
(function(Medium) {
     "use strict";
     //do stuff
})(Medium);
(function(Medium) {
     "use strict";
     //do stuff

etc.

为什么代码被区分为这样?无法同时调用它们,为什么要调用一系列IFFE语句?这是一种常见的模式吗?您可以在上面查看我的链接,查看我所指的完整代码。

2 个答案:

答案 0 :(得分:1)

如果查看the source files,您会看到每个单独的组件都是在单独的JavaScript文件中开发的。 A build script用于将所有这些脚本连接在一起,并生成您正在查看的文件。

通过这种方式开发,您可以只使用所需的组件构建自己的自定义构建。通过在IIFE中将函数组包装在一起,他还可以避免在全局和每个函数中设置"use strict"。如果需要在一组API之间对变量进行着色,则允许在IIFE内声明变量,而不会与其他模块或全局空间中的变量发生冲突。

但主要优点是开发人员可以将库开发为多个不同的文件,您可以选择只包含项目中需要的文件。

答案 1 :(得分:1)

如果查看src/Medium目录,您可以看到每个IIFE都是单独的文件,其中许多文件在tests目录中都有匹配的文件。

他们将这些代码分开,这样他们就可以将代码分成小的可测试模块,并使用IIFE来扩展具有新功能的existsin Medium对象。

Medium.js文件是构建过程的结果,该过程会合并src/Medium文件夹中的所有文件。