1.什么是AMD、CMD、CommonJs?
AMD(异步模块定义)是RequireJS在推广过程中对模块定义的规范化产出,它是一个概念,而RequireJS实现这个概念。可以通过require引用加载。
RequireJS特点是依赖前置,即在定义前面通过数组的形式加载所有的依赖。
define(['package/lib'], function (lib) {
function foo() {
lib.log('hello world');
}
return {
foo: foo
};
});
CMD(同步模块定义)是SeaJS在推广过程中对模块定义的规范化产出,SeaJS是CMD这个概念的实现。特点是就近依赖,即哪里用到依赖就在哪里引入,即用即返回(同步概念)
define(function (require, exports, module) {
// 通过require引入依赖
var $ = require('jquery');
var Spinning = require('./spinning')
});
CommonJs规范通过module.exports定义,前端浏览器并不支持,推荐在后端nodeJs中使用
exports.area = function (r) {
return Math.PI * r * r;
};
exports.circumference = function (r){
return 2 * Math.PI * r;
};
ES6新增特性 export/import