"Это" внутри прослушивателя событий всегда относится к одному и тому же объекту?

85
6

Я не уверен, что это общий Javascript вопрос: я использую Appcelerator Titanium, поэтому могут быть особенности для этой платформы.

Вот мой вопрос: если я добавлю прослушиватель событий к объекту, будет ли ключевое слово 'this' в прослушивателе событий всегда указывать на объект?

Пример:

var itemView = Ti.UI.createLabel({
text: 'Dude'
})
itemView.addEventListener('click',function(e){
alert(this.getText())
})

Этот пример работает. Но, возможно, это только из-за некоторых доброкачественных обстоятельств, которые не всегда применяются. Мой вопрос: могу ли я полагаться на это, чтобы он всегда работал? Является ли контекст для обработчика событий всегда объектом, к которому привязан обработчик?

Является ли это основополагающим законом Javascript и поддерживает ли Titanium/Alloy это?

спросил(а) 2014-03-25T11:45:00+04:00 6 лет, 11 месяцев назад
1
Решение
127

Я думаю, вам лучше взглянуть на этот ответ, я надеюсь, что это может очистить ваше замешательство.

/questions/28192/how-does-this-keyword-work-within-a-function/206520#206520

ответил(а) 2014-03-25T12:00:00+04:00 6 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема