CommonJS、CMD、AMD、浏览器全局对象

134 阅读1分钟

原理

(function (global,factory){
    if (typeof exports === 'object' && typeof module !== 'undefined') {
        //CommonJS、CMD规范检查
        module.exports = factory();
    } else if ( typeof define === 'function' && define.amd) {
        //AMD规范检查
        define(factory);
    } else {
        //浏览器注册全局对象
        global.Jquery = factory();
    }
})(this, (function () {
    function say() {
        console.log('hello world')
    }
    return {
        say: say
    }
}))

CommonJs

  1. module.exports
  2. require
  3. 加载模块是同步的,只要用于服务端node
  4. export import 是es6引入的方式

AMD

  1. 采用异步加载,适用于浏览器端
  2. define()

参考链接:javascript.ruanyifeng.com/nodejs/modu…