AMD\CMD\UMD

这么多MD….

模块化开发的几种规范

AMD

define([‘jquery’], function($){

    function foo(){

        // …

    }

    return foo;

})

define([‘jquery’], {

    a:123

})

CMD => node下CommonJS类似

define(function(require, exports, module){

    function foo(){

        // 就近加载依赖

        var $ = require('jquery');

        // …

    }

    exports.foo = foo;

})

UMD 就是兼容不同环境,通常应用类库开发好打包给用户使用,因为开发者并不知道用户使用哪个模块规范

// 类库代码

function foo($){

    function bar(){

        // $….

    }

    return bar;

}

// umd兼容处理

(function(global, factory){

    if(typeof define === 'function' && define.amd){

        define([‘jquery’], factory);

    }else if(typeof exports === 'object'){

        var $ = requie('jquery');

        module.exports = factory($);

    }else{

        global.foo = foo(global.jQuery);

    }

})(this, factory);

发表评论

电子邮件地址不会被公开。 必填项已用*标注