在backbone.js 的前几行中,我不明白他们为什么要在导出或要求上测试未定义
很明显,它是未定义的,因为他们没有设置它。如果它是一个全局(窗口)对象,那么他们会明确地说出来。
root.exports // they don't do this
root.require
他们为什么要检查这个?
typeof exports !== 'undefined'
还有这个
if (!_ && (typeof require !== 'undefined'))
这从上面
!_
完整片段
(function(){
var root = this,
previousBackbone = root.Backbone,
slice = Array.prototype.slice,
splice = Array.prototype.splice,
_ = root._,
Backbone;
if (typeof exports !== 'undefined') {
Backbone = exports;
} else {
Backbone = root.Backbone = {};
}
Backbone.VERSION = '0.9.2';
if (!_ && (typeof require !== 'undefined')) {
_ = require('underscore');
}