0

次のように設定されたJavaScriptライブラリが表示されます。

   (function (global, undefined) {
      //..
    })(this)

undefinedこの文脈におけるの意味は何ですか?

4

2 に答える 2

4

古いブラウザーでundefinedは、immutableまたはnon-writableではありませんでした。未使用の関数パラメーターundefinedの名前として設定すると、より高いスコープで設定されたとしても、それがundefinedであることを意味していました。

// Old browser
undefined = 1;
undefined; // 1

// Modern browser
undefined = 1;
undefined; // undefined

書き込み不可はグローバル スコープでのみ適用されることに注意してください。どちらの場合も、次のことが当てはまります。

(function () {         // creating a new scope means..
    var undefined = 1; // this is now different to the `undefined` global
    return undefined;  // so can be written to, e.g. set as 1
}()); // 1
于 2013-06-15T13:17:32.380 に答える
1

関数のパラメーターとして設定undefinedすると、ミニファイアーはそれを短い名前に置き換えることができます。

たとえば、次のようになります。

(function (global, undefined) {
    alert(undefined)
})(this)

これに縮小することができます:

(function(a,b){alert(b)})(this)

したがってundefined、関数内の変数のすべての出現箇所は、 のような短い名前に名前が変更されbます。変数名に関係なく、同じ値を持つため、同じ目的を果たします。

于 2013-06-15T13:18:38.007 に答える