AMD、CMD、UMD 模块的写法

简介 最近几年,我们可以选择的Javascript组件的生态系统一直在稳步增长。虽然陡增的选择范围是极好的,但当组件混合匹配使用时就会出现很尴尬的局面。开发新手们会很快发现不是所有组件都能彼此“和平相处”。 为了解决这个问题,两种竞争关系的模块规范AMD和CommonJS问世了,它们允许开发者遵照一种约定的沙箱化和模块化的方式来写代码,这样就能避免“污染生态系统”。 AMD 随着RequireJS成为最流行的实现方式,异步模块规范(AMD)在前端界已经被广泛认同。 下面是只依赖jquery的模块foo的代码: // 文件名: foo.js define([‘jquery’], function ($) { // 方法 function myFunc(){}; // 暴露公共方法 return myFunc; }); 还有稍微复杂点的例子,下面的代码依赖了多个组件并且暴露多个方法: // 文件名: foo.js define([‘jquery’, ‘underscore’], function ($, _) { // 方法 function a(){}; // 私有方法,因为没有被返回(见下面) function b(){}; // 公共方法,因为被返回了 function c(){}; // 公共方法,因为被返回了 // 暴露公共方法 return { b: b, c: c }…