2012-04-15 15 views
2

Zu Beginn des the source code for underscore.js, Sie sehen:Warum würden Sie dies einer anderen Variablen zuweisen?

var root = this; 

var previousUnderscore = root._; 

So wird die Frage, warum schreiben die Verfasser den Ball hielt gerade:

var previousUnderscore = this._; 
+2

Weil er die Wurzel und previousUnderscore separat verwendet in Code – Habib

+1

Da der Ausführungskontext (= der Wert des 'this' Schlüsselwort) in verschachtelten Funktionen nicht verfügbar ist (da sie ihren eigenen Ausführungskontext hat). Wenn Sie also von diesen verschachtelten Funktionen aus darauf zugreifen möchten, müssen Sie sie in einer Variablen speichern. –

+0

Ich mag Sime Vidas die beste Antwort, aber ich kann es nicht akzeptieren, weil es als Kommentar zur Verfügung gestellt wurde. –

Antwort

1

Zwei Gründe,

  1. Ablesbarkeit, macht es Es ist klarer, was der Code macht, worauf er verweist. Das ist sehr undurchsichtig.
  2. Je nach Kontext kann sich dies auf viele, viele und viele verschiedene Objekte beziehen, root kann an mehreren Stellen verwendet werden und bezieht sich immer auf das korrekte Objekt.
Verwandte Themen