var
tworzy lokalną zmienną w ramach tools.triangle
. Zmienne originX
i originY
nie mogą wchodzić w interakcje z zewnętrznym numerem tools.triangle
. this
to wskaźnik do bieżącego obiektu, z którym masz do czynienia. Drugi przykład może być użyty do nadania właściwości obiektowi poprzez wykonanie new tools.triangle();
. Jeśli nie użyjesz new
i po prostu użyjesz tools.triangle();
, this
wskaże obiekt globalny, który jest obiektem window
. Można zmienić obiekt, do którego this
punktów przy użyciu metody funkcyjne call();
i apply();
takiego:
var myObj = {};
tools.triangle.call(myObj);
// "this" in tools.triangle now points to myObj
// myObj now has the properties originX and originY
Ważne jest, aby wiedzieć, że this
może odwołać się do dowolnego obiektu, a także być niezdefiniowana lub null
w ES5 trybie ścisłym .
Możesz znaleźć więcej informacji here.
Zmienna 'var' jest prywatna. zmienna 'this' jest publiczna. – elclanrs
@ elclanrs - ten komentarz nie jest pomocny, ponieważ wprowadza w błąd. Zmienne mogą być zadeklarowane jako globalne, 'this' jest związane z kontekstem wykonania, nie jest zmienną w zwykłym znaczeniu, chociaż może być traktowane jako zmienna lokalna. – RobG