CMD、AMD、CommonJS 规范

2016-11-23  本文已影响0人  饥人谷_徐小坤

1.为什么要使用模块化?

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

CMD:

define(factory);

factory为函数时,表示是模块的构造方法。执行该构造方法,可以得到模块向外提供的接口。factory 方法在执行时,默认会传入三个参数:require、exportsmodule

define(function(require, exports, module) {
     // 模块代码
});
define(function(require, exports, module) {
  var a = require('./a')
  a.doSomething()
    // 此处略去 1000 行
  var b = require('./b') // 依赖可以就近书写
  b.doSomething()
    // ... 
})

AMD:

define(id?, dependencies?, factory);

id:指定义中模块的名字,可选;
dependencies:是一个当前模块依赖的,已被模块定义的模块标识的数组字面量。
factory:模块初始化要执行的函数或对象。如果为函数,它应该只被执行一次。如果是对象,此对象应该为模块的输出值。

define(['./a', './b'], function(a, b) { // 依赖必须一开始就写好  
  a.doSomething()  
    // 此处略去 1000 行
  b.doSomething()...
})

CommonJS:

var i = 1;
var max = 30;
module.exports = function () { 
   for (i -= 1; i++ < max; ) { 
     console.log(i); 
   } 
   max *= 1.1;
};

上面代码通过module.exports对象,定义了一个函数,该函数就是模块外部与内部通信的桥梁。
加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的module.exports对象。

CMD与AMD的区别:

参考:模块化开发

上一篇 下一篇

猜你喜欢

热点阅读