在咖啡脚本构造函数中绑定事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在咖啡脚本构造函数中绑定事件相关的知识,希望对你有一定的参考价值。
如果我上课了
class Control
constructor: (@canvas, @control) ->
@control.on('keyup change', ->
update(@canvas)
)
当我改变控制,更改事件被触发,我得到错误$canvas is undefined
。
但是,如果代码更改为
class Control
constructor: (canvas, @control) ->
@control.on('keyup change', ->
update(canvas)
)
一切都按预期工作。
这是为什么?
答案
这按预期工作。在构造函数参数上使用@
会自动在我们的构造函数中设置this.canvas = canvas
。事件处理程序的上下文(this
)与类不同,除非您使用“胖箭头”=>
明确地将其范围限定。
class Control
constructor: (@canvas, @control) ->
@control.on('keyup change', => # notice fat arrow
update(@canvas)
)
在您的工作示例中,您通过不将canvas
附加到当前上下文来避免此问题。
以上是关于在咖啡脚本构造函数中绑定事件的主要内容,如果未能解决你的问题,请参考以下文章