【问题标题】:Does 'this' inside an event listener always refer to the same object?事件侦听器中的“this”是否总是引用同一个对象?
【发布时间】:2014-05-02 23:36:27
【问题描述】:

我不确定这是否是一个通用的 Javascript 问题:我正在使用 Appcelerator Titanium,因此该平台可能有一些细节。

这是我的问题:如果我向对象添加事件侦听器,事件侦听器中的“this”关键字是否总是指向该对象?

示例:

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

这个例子有效。但也许这只是因为一些并不总是适用的良性情况。我的问题是:我可以依靠它一直工作吗?事件处理程序的上下文是否始终是处理程序绑定的对象?

这是一项基本的 Javascript 法律,Titanium / Alloy 是否尊重它?

【问题讨论】:

    标签: javascript binding event-handling this


    【解决方案1】:

    【讨论】:

    • 谢谢 Yash。那里有很多信息,但没有专门关于事件处理程序中的“this”的信息。所以我仍然不知道使用'addEventListener'是否总是会导致处理程序内的this关键字指向处理程序所附加的对象。
    • 如果是这样的话,那是有道理的,但我能找到的人实际上并没有这么说。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    相关资源
    最近更新 更多