Javascript 导出库的约定名称

Javascript 导出库的约定名称,javascript,design-patterns,open-source,libraries,Javascript,Design Patterns,Open Source,Libraries,我正在尝试启动一个库,我想使用require、exports或其他类型导出 我在主要的库中看到这样的代码: (function(factory) { // Establish the root object, `window` (`self`) in the browser, or `global` on the server. // We use `self` instead of `window` for `WebWorker` support. var root = (type

我正在尝试启动一个库,我想使用require、exports或其他类型导出

我在主要的库中看到这样的代码:

(function(factory) {
  // Establish the root object, `window` (`self`) in the browser, or `global` on the server.
  // We use `self` instead of `window` for `WebWorker` support.
  var root = (typeof self == 'object' && self.self == self && self) ||
    (typeof global == 'object' && global.global == global && global);
  // Set up Backbone appropriately for the environment. Start with AMD.
  if (typeof define === 'function' && define.amd) {
    define(['underscore', 'jquery', 'exports'], function(_, $, exports) {
      // Export global even in AMD case in case this script is loaded with
      // others that may still expect a global Backbone.
      root.Backbone = factory(root, exports, _, $);
    });
    // Next for Node.js or CommonJS. jQuery may not be needed as a module.
  } else if (typeof exports !== 'undefined') {
    var _ = require('underscore'),
      $;
    try {
      $ = require('jquery');
    } catch (e) {}
    factory(root, exports, _, $);
    // Finally, as a browser global.
  } else {
    root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));
  }
})(function(root, Backbone, _, $) {

});
这个图案的名字是什么?我哪儿也找不到教程

谢谢

它不是UMD(通用模块定义)吗?是否可能重复it UMD(通用模块定义)?可能重复的