Por que o contexto é diferente nesses dois manipuladores de eventos
Essa é uma pergunta básica, mas não consigo entender por que o contexto (o ponteiro 'this') está correto no segundo manipulador de eventos e está incorreto no primeiro.
Eu tenho essa função de construtor simples para criar o objeto myNotifier:
function Notifier ( message ) {
this.message = message;
this.saySomething = function () {
alert( "I say:" + this.message);
}
}
myNotifier = new Notifier(" HELLO!");
Então eu uso omyNotifier.saySomething()
método como um manipulador de eventos para CLIQUE em dois botões:
$(".button1").click( myNotifier.saySomething );
$(".button2").click( function () { myNotifier.saySomething()});
O primeiro mostra: "Eu digo: indefinido" O segundo mostra: "Eu digo: OLÁ"
Eu entendo que o contexto (este) não é o objeto original ao chamar o método, mas por que está correto ao chamar dentro de uma função para o segundo botão?