Почему контекст отличается в этих двух обработчиках событий
Это основной вопрос, но я не могу понять, почему контекст (указатель 'this') является правильным во втором обработчике событий и неверным в первом.
У меня есть эта простая функция конструктора для создания объекта myNotifier:
function Notifier ( message ) {
this.message = message;
this.saySomething = function () {
alert( "I say:" + this.message);
}
}
myNotifier = new Notifier(" HELLO!");
Тогда я используюmyNotifier.saySomething()
Метод как обработчик события для щелчка на двух кнопках:
$(".button1").click( myNotifier.saySomething );
$(".button2").click( function () { myNotifier.saySomething()});
Первый показывает: «Я говорю: не определено» Второй показывает: «Я говорю: ПРИВЕТ»
Я понимаю, что контекст (это) не является исходным объектом при вызове метода, но почему он корректен при вызове внутри функции для второй кнопки?