为插件提供模块化支持

(function(factory) {
  // 定义全局对象 root 变量,在浏览器环境下为 window,在 服务器 环境下为 global, self 指向window
  var root = (typeof self == 'object' && self.self === self && self) ||
            (typeof global == 'object' && global.global === global && global);
  // 支持AMD规范
  // 使用define函数定义Backbone模块, 依赖`jquery`, `exports`两个个模块.
  if (typeof define === 'function' && define.amd) {
    define(['jquery', 'exports'], function($, exports) {
      factory(root, exports,$);
    });
  // 支持 commonJs 规范
  // CommonJS规范中, exports是用于导出模块的对象.
  } else if (typeof exports !== 'undefined') {
    var $;
    try { $ = require('jquery'); } catch (e) {}
    factory(root, exports,$);
  // 以上两种情况都没有,则以最简单的执行函数方式,将函数的返回值作为全局对象Backbone
  } else {
    factory(root, {}, (root.jQuery || root.Zepto || root.ender || root.$));
  }

})(function(){
  
})

 

posted @ 2018-01-02 16:03  无情码字员  阅读(314)  评论(0编辑  收藏  举报