早期的模块化

模块化主要是为了:

  • 解决命名冲突
  • 污染全局作用域
  • 可读性更高,更易于维护
  • 代码复用性更强

早期的模块化主要是利用闭包加上立即执行函数来实现的,通过函数作用域解决了命名污染和污染全局作用域的问题。

如:

(function(window) {
  // 模块内部
}(window))

window 对象传入立即执行函数中,主要目的是为了进一步的提高性能,可以更快的访问到 window 对象,避免查找至顶级作用域,在压缩混淆代码过程中,还可以优化代码,将 window 重命名为 a 这类字节长度更短的变量名。