AMD和CMD

2017-07-13  本文已影响23人  sunny519111

题目1: 为什么要使用模块化?

1. 解决命名冲突
2. 依赖管理
3. 可以提高代码的可读性
4. 提高代码的复用性
5. 避免污染全局变量

题目2:CMD、AMD、CommonJS 规范分别指什么?有哪些应用

- **AMD(异步模块定义)**:由于浏览器加载脚本天生异步,AMD是一个在浏览器模快化开发的规范,但是由于元素的js并没有define()和require(),所以AMD规范运用了requirejs库。

- ** CMD(通用模板定义)**:也是异步加载模块,它和AMD只是模块定义的方式和模块记载的时机不同

AMD和CMD的区别以及运用

  1. 都运用于浏览器端的异步加载资源
  2. AMD是全部加载后,然后需求使用,而CMD是按需加载,就近依赖
  3. AMD在加载模块完成后就会执行模块,所有模快都记载完成后,就会进入required的回调函数,执行主逻辑函数,,这样的效果就是依赖模块的执行顺序和书写顺序不一定一致,看网络速度,哪个先下载下来,哪个先执行,但是主逻辑一定在所有依赖加载完成后才执行。
  4. CMD加载完某个依赖模块后并不执行,只是下载而已,在所有依赖模块加载完成后进入主逻辑,遇到require语句的时候才执行对应的模块,这样模块的执行顺序和书写顺序是完全一致的
```
  //AMD
  define(['jquery','dailog','carousel'],function(jquery,dailog,Carousel){
    var $=jquery;
    var dailog=dailog;
    var Carousel=Carousel;
  })
  //CMD
  //1. 定义一个模快myModule.js
  define(function(require,exports,module){
    var $=require(jquery);
    $("div").addClass("active");
    exports.add=function(){
      var i=0;
      i++
      return i
    }
  })
  define(function(require,exports,module){
    var sum=require("myModule").add;
    console.log(sum)
  })
```
上一篇下一篇

猜你喜欢

热点阅读