数据结构-队列实现

52 阅读1分钟

前端模块化

1.什么是模块化

复杂程序按规范封装组合,内部变量和函数私有,向外保留变量和函数供其他模块调用

2.模块化发展历史

  • 全局function:封装函数

  • 命名空间:封装对象,缺点是完全暴露,对象变量可在外部修改

  • IIFE 闭包/匿名自执行

    //window对象添加全局属性/命名空间
    //增强版:参数传入依赖
    (function(win, $b){
      function aFn(){}
      win.MyFun = {aFn}
    })(windowJQuery)
    

3.模块化好处

  • 避免命名冲突/命名空间污染
  • 分离,按需加载
  • 复用,维护

4.引入多个script问题

  • 请求多
  • 依赖混乱
  • 维护难

5.CommonJS

实现:Browserify

  • module
  • exports
  • require
  • global

6.AMD

  • CommonJS同步加载不满足浏览器体验,AMD 异步模块加载出现了
require(['math'], function (math){
  math.add(2,3);//与模块加载异步,浏览器不会假死
})
  • 实现:require.js