js中UMD模块的声明模式

大家都知道AMD,common.js ,ESModule的模块的异同,所以有时候需要声明为UMD的模式来兼容这几种模块的声明,下面就是示例代码


(function (global, factory) {
  if (typeof define === "function" && define.amd) {
    define(['exports'], factory);
  } else if (typeof exports !== "undefined") {
    factory(exports);
  } else {
    var mod = {
      exports: {}
    };
    factory(mod.exports);
    global.JasonZeng = mod.exports; // 这里的JasonZeng就是你要到处的对象
  }
})(this, function (exports){
  'use strict';
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  exports.default = JasonZeng; // 这里的JasonZeng就是你要到处的对象

  function JasonZeng() {
    return {
      name: "JasonZeng",
      dance: function() {
        // 所以将你眼睛轻轻闭了起来
      }
    }
  } 
});

里面的JasonZeng就是需要导出的对象

你可能感兴趣的:(js中UMD模块的声明模式)