2012-04-15 12 views
2

the source code for underscore.jsの開始時に、あなたがこの参照してください。それが作るなぜこれを別の変数に割り当てるのですか?

var previousUnderscore = this._; 
+2

実行コンテキスト(= 'this'キーワードの値)は、ネストされた関数では使用できませんので(彼らは自分の実行コンテキストを持っているので)、彼はコード – Habib

+1

で別々のルートとpreviousUnderscoreを使用しているため。したがって、それらのネストされた関数内からアクセスする場合は、変数に変数を保存する必要があります。 –

+0

私はSime Vidasの答えが一番好きですが、それはコメントとして提供されたので、私はそれを受け入れることができません。 –

答えて

1

二つの理由から、

  1. 可読性、:著者は書くだけdidntの理由

    var root = this; 
    
    var previousUnderscore = root._; 
    

    をそこで問題になりますコードが何をしているのか、それが何を参照しているのかがはっきりしています。これは非常に不透明です。

  2. これは文脈によって異なりますが、これはたくさんの異なるオブジェクトを参照することができます。ルートは複数の場所で使用され、常に正しいオブジェクトを参照します。
関連する問題