为插件提供模块化支持
(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(){ })