3

IIFE がある場合、これはローカル スコープを参照しますか?

(function(){

    var $a;   
    $a = Su.$a

    // this.$a = Su.$a; // can I replace with this

})();

Su.$aIIFE のどこでも利用できるようにする必要があるため、質問しています。

でも電話したくない、電話しSu.$aたい$a

var it が最上位スコープの場合this.$aと同じことを言っていますか?var $a

4

2 に答える 2

6

いいえ。

thisMDN / thisOperatorで説明されているいくつかのことによって設定されますが、要するに:

  • 最上位スコープのグローバル オブジェクト
  • obj、実行時obj.func(...)
  • objfunc.apply(obj, [...])、またはfunc.call(obj, ...)
    またはグローバル オブジェクトを実行する場合objnullまたはundefined
  • func.prototype呼び出し時に、プロトタイプを持つ新しいオブジェクトnew func(...)
  • elem.addEventListener('event', func, ...)andeventが起動された場合のイベントターゲットelem

新しい JavaScript にはいくつかの相違点と追加点がありますが、それだけです。 スコープthisとは無関係です。function

于 2012-08-28T06:16:23.583 に答える
5

いいえ、違います。

var $aの場合$a、関数スコープ内のローカル変数です。

ただし、 を使用する場合this.$a、これは自己実行関数であるためthiswindowこの場合this.$aは と同じwindow.$aであるため、代わりにグローバル変数を使用しています$a

于 2012-08-28T03:17:50.933 に答える