前端模块化,AMD和CMD的区别总结
AMD和CMD都是浏览器端的js模块规范,2者的区别总结如下: 1、AMD推崇依赖前置,CMD推崇就近依赖 //AMD: mod.js define([ 'dependency1' , 'dependency2' ], function (require, exports, module){ //TODO module.exports = {}; }); //CMD: mod.js define( function (require, exports, module) { var $ = require( 'jquery.js' ) if ( true ) { let a = require( './a.js' ); //TODO } module.exports = {} }); 这种区别各有优劣,只是语法上的差距,而且requireJS和SeaJS都支持对方的写法 2、执行时机不同:AMD是加载完立即执行,CMD是延迟执行(二者的最大区别) 立即执行比较好理解,我们来看CMD的延迟执行。 还是以上面代码为例 //CMD: mod.js define( function (require, exports, module) { var $ = require( 'jquery.js' ) if ( true ) { let a = require( './a.js' ); /