早期的模块化
模块化主要是为了:
- 解决命名冲突
- 污染全局作用域
- 可读性更高,更易于维护
- 代码复用性更强
早期的模块化主要是利用闭包加上立即执行函数来实现的,通过函数作用域解决了命名污染和污染全局作用域的问题。
如:
(function(window) {
// 模块内部
}(window))
将 window
对象传入立即执行函数中,主要目的是为了进一步的提高性能,可以更快的访问到 window
对象,避免查找至顶级作用域,在压缩混淆代码过程中,还可以优化代码,将 window
重命名为 a
这类字节长度更短的变量名。