0

このコードは何をしますか?

g = "undefined" !== typeof exports ? exports : k.Backbone = {};
4

2 に答える 2

3

次の省略形です。

if("undefined" !== typeof exports)
    g = exports;
}else{
    g = k.Backbone = {};
}

項演算子:?と呼ばれる

このように書くと、もう少し読みやすいかもしれません。

g = ("undefined" !== typeof exports) // If
    ? exports                        // Then
    : k.Backbone = {};               // Else
于 2013-01-08T11:43:29.433 に答える
2

Backbone を CommonJS モジュールとして定義しているため、node.js などの CommonJS 互換環境にロードできます。

縮小されたソース コードを見ています。これは、非縮小のように見えるものです:

var Backbone;
if (typeof exports !== 'undefined') {
  Backbone = exports;
} else {
  Backbone = root.Backbone = {};
}

変数exportsは、CommonJS モジュールによって定義された戻りオブジェクトです。CommonJS 環境では、Backbone変数はその値に設定されているためBackbone、モジュールからエクスポートされます。

が定義されていない場合exports、コードはブラウザ環境にあると見なされ、ブラウザのグローバル スコープを参照するオブジェクトBackboneのプロパティとしてエクスポートする必要があります。rootwindow

于 2013-01-08T11:44:27.610 に答える