このコードは何をしますか?
g = "undefined" !== typeof exports ? exports : k.Backbone = {};
このコードは何をしますか?
g = "undefined" !== typeof exports ? exports : k.Backbone = {};
次の省略形です。
if("undefined" !== typeof exports)
g = exports;
}else{
g = k.Backbone = {};
}
三項演算子:?
と呼ばれる
このように書くと、もう少し読みやすいかもしれません。
g = ("undefined" !== typeof exports) // If
? exports // Then
: k.Backbone = {}; // Else
Backbone を CommonJS モジュールとして定義しているため、node.js などの CommonJS 互換環境にロードできます。
縮小されたソース コードを見ています。これは、非縮小のように見えるものです:
var Backbone;
if (typeof exports !== 'undefined') {
Backbone = exports;
} else {
Backbone = root.Backbone = {};
}
変数exports
は、CommonJS モジュールによって定義された戻りオブジェクトです。CommonJS 環境では、Backbone
変数はその値に設定されているためBackbone
、モジュールからエクスポートされます。
が定義されていない場合exports
、コードはブラウザ環境にあると見なされ、ブラウザのグローバル スコープを参照するオブジェクトBackbone
のプロパティとしてエクスポートする必要があります。root
window