• 技术文章 >web前端 >js教程

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

    黄舟黄舟2017-07-24 13:40:25原创1692
    一下三块均以 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
        }
    }));

    以上就是关于AMD和CMD以及UMD三种模块的规范以及写法格式详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:格式 写法 规范
    上一篇:jQuery之常用的选择器分享 下一篇:简述利用VS2017 和 js 进行桌面程序开发教程
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 深入了解Angular中的依赖注入模式(玩法案例)• 如何安装并管理多版本node?方法介绍• JavaScript创建多个对象方法总结• 聊聊node+multiparty怎么实现文件上传• 浅析Angular中的独立组件,看看怎么使用
    1/1

    PHP中文网