咖啡脚本 - 保留类上下文和事件上下文

Coffee script - preserve the class context and the event context

本文关键字:上下文 事件 保留 脚本 咖啡      更新时间:2023-09-26

寻找常见问题的优雅解决方案:

我有一个订阅几个事件的类,我希望处理程序是我的类中的一个实例方法,但也想获取事件上下文(在这种情况下触发事件的元素)。

我正在使用胖线语法进行方法定义,但无法获取事件上下文。具体来说,我使用的是raphael js,在订阅元素时,事件对象不包含元素,只有dom元素,因此如果没有事件上下文,我将不得不在论文中通过raphael id搜索元素,我不喜欢它。

在这种情况下,最佳做法是什么?我目前正在每次订阅事件之前创建一个新的上下文对象,上下文包含实例引用和元素引用。

如果我

理解正确,您希望在处理程序函数中保留对绑定和未绑定上下文的引用。您可以通过手动执行类似于胖箭头的操作来实现此目的:

class TheListenerObject
  constructor: ->
    context = @ # some people may call it `self`
    @theHandlerMethod = () ->
      referenceToTheListenerObjectInstance = context
      referenceToTheUnboundContext = @