>웹 프론트엔드 >JS 튜토리얼 >세 가지 모듈 AMD, CMD 및 UMD의 사양 및 쓰기 형식에 대한 자세한 설명

세 가지 모듈 AMD, CMD 및 UMD의 사양 및 쓰기 형식에 대한 자세한 설명

黄舟
黄舟원래의
2017-07-24 13:40:252708검색

다음 세 블록은 모두 foo.js를 예제 파일 이름으로 사용하고 jQuery와 밑줄을 필수 구성 요소로 사용합니다.

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으로 문의하세요.