我一直在阅读试图模拟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语句?这是常见的模式吗?您可以在上面的链接中查看我所指的完整代码。

最佳答案

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

通过这种方式进行开发,您可以仅使用所需组件来构建自己的自定义版本。通过在IIFE中将功能组包装在一起,他还可以避免针对每个单独的功能全局设置"use strict"。如果需要在一组API之间对变量进行阴影处理,则可以在IIFE内部声明变量,而不会与其他模块或全局空间中的变量发生冲突。

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

10-06 13:33