backbone.js の最初の数行では、なぜ undefined を export や require でテストしているのかわかりません。
彼らがそれを設定しなかったので、それが未定義になることは明らかです。それがグローバル(ウィンドウ)オブジェクトである場合、彼らはそれを明示的に言ったでしょう。
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');
}