[TOC]

一、模块化进化过程:

  • 全局function模式(命名冲突)
  • namespace,简单对象封装(外部可以直接修改内部数据)
  • IIFE问题(依赖)
  • IIFE增强(引入依赖)(现代模块化的基石) |
    | 实现 | 作用 | 问题 | | —- | —- | —- | —- | | 全局function模式 | 将不同的功能封装成不同的全局函数 | 将不同的功能封装成不同的全局函数 | 污染全局命名空间, 容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系 | | namespace模式 | 简单对象封装 | 减少了全局变量,解决命名冲突 | 数据不安全(暴露所有模块成员,外部可以直接修改模块内部的数据) | | IIFE模式:匿名函数自调用(闭包) | 将数据和行为封装到一个函数内部, 通过给window添加属性来向外暴露接口 | 数据是私有的, 外部只能通过暴露的方法操作 | 如果当前这个模块依赖另一个模块怎么办? | | IIFE模式增强 : 引入依赖 | | 这就是现代模块实现的基石 | 引入多个