ホームページ  >  記事  >  ウェブフロントエンド  >  AMD、CMD、UMDの3つのモジュールの仕様と書き込みフォーマットを詳しく解説

AMD、CMD、UMDの3つのモジュールの仕様と書き込みフォーマットを詳しく解説

黄舟
黄舟オリジナル
2017-07-24 13:40:252666ブラウズ

次の 3 つのブロックはすべて、サンプル ファイル名として foo.js を使用し、必須コンポーネントとして jQuery とアンダースコアを使用します

ADM: 非同期モジュール仕様、RequireJs のサポートされる形式

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

CommonJs: ノードのサポートされる形式

//    文件名: 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: ユニバーサル モード。上記 2 つの形式をサポートし、古い「グローバル変数」仕様もサポートできます

(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の3つのモジュールの仕様と書き込みフォーマットを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。