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?

A jsfiddle do przetestowania

questionAnswers(2)

yourAnswerToTheQuestion