Dlaczego kontekst jest inny w tych dwóch programach obsługi zdarzeń
To podstawowe pytanie, ale nie mogę zrozumieć, dlaczego kontekst („ten” wskaźnik) jest poprawny w drugim module obsługi zdarzeń i niepoprawny w pierwszym.
Mam tę prostą funkcję konstruktora, aby utworzyć obiekt myNotifier:
function Notifier ( message ) {
this.message = message;
this.saySomething = function () {
alert( "I say:" + this.message);
}
}
myNotifier = new Notifier(" HELLO!");
Następnie używammyNotifier.saySomething()
metoda jako obsługa zdarzeń dla KLIKNIJ na dwóch przyciskach:
$(".button1").click( myNotifier.saySomething );
$(".button2").click( function () { myNotifier.saySomething()});
Pierwszy pokazuje: „Mówię: undefined” Drugi pokazuje: „Mówię: HELLO”
Rozumiem, że kontekst (to) nie jest oryginalnym obiektem podczas wywoływania metody, ale dlaczego jest poprawny podczas wywoływania funkcji drugiego przycisku?