我一直在阅读试图模拟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内部声明变量,而不会与其他模块或全局空间中的变量发生冲突。
但是主要优点是,开发人员可以将库开发为多个不同的文件,并且您可以选择仅将所需的文件包含在项目中。