您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页关于AMD和CMD以及UMD三种模块的规范以及写法格式详解

关于AMD和CMD以及UMD三种模块的规范以及写法格式详解

来源:华拓科技网


一下三块均以 foo.js 为示例文件名,以 jQuery,underscore 为需求组件

ADM:异步模块规范, RequireJs 的支持格式

// 文件名: foo.js
define(['jquery', 'underscore'], function ($, _) {
// 方法
function a(){}; // 私有方法,因为没有被返回(见下面)
function b(){}; // 公共方法,因为被返回了
function c(){}; // 公共方法,因为被返回了
 // 暴露公共方法
 return {
 b: b,
 c: c
 }
});

CommonJs:node 的支持格式

// 文件名: foo.js
var $ = require('jquery');
var _ = require('underscore');
 
// methods
function a(){}; // 私有方法,因为它没在module.exports中 (见下面)
function b(){}; // 公共方法,因为它在module.exports中定义了
function c(){}; // 公共方法,因为它在module.exports中定义了
 
// 暴露公共方法
module.exports = {
 b: b,
 c: c
};

UMD:通用模式,支持以上两种格式,切可以支持老式的 “全局变量” 规范

(function (root, factory) {
 if (typeof define === 'function' && define.amd) {
 // AMD
 define(['jquery', 'underscore'], factory);
 } else if (typeof exports === 'object') {
 // Node, CommonJS之类的
 module.exports = factory(require('jquery'), require('underscore'));
 } else {
 // 浏览器全局变量(root 即 window)
 root.returnExports = factory(root.jQuery, root._);
 }
}(this, function ($, _) {
 // 方法
 function a(){}; // 私有方法,因为它没被返回 (见下面)
 function b(){}; // 公共方法,因为被返回了
 function c(){}; // 公共方法,因为被返回了
 
 // 暴露公共方法
 return {
 b: b,
 c: c
 }
}));

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务