Javascript 从CoffeeScript中的click处理程序中调用另一个函数或方法

Javascript 从CoffeeScript中的click处理程序中调用另一个函数或方法,javascript,function,coffeescript,onclick,Javascript,Function,Coffeescript,Onclick,我是CoffeeScript n00b,我正在努力从单击处理程序中调用另一个函数 第一个警报出现,但第二个警报没有出现 CourseGuide = init: -> $('.js-size-unit-button').on 'click', (e) -> alert 'hello world - test' @clickHandler(e) clickHandler: (e) -> e.pre

我是CoffeeScript n00b,我正在努力从单击处理程序中调用另一个函数

第一个警报出现,但第二个警报没有出现

CourseGuide =

    init: ->

      $('.js-size-unit-button').on 'click', (e) ->
        alert 'hello world - test'
        @clickHandler(e)

      clickHandler: (e) ->
        e.preventDefault()
        console.log 'hello world - test 2'
        alert 'hello world - test 2'

module.exports = CourseGuide
这是控制台中的错误:

TypeError:this.clickHandler不是函数


我有一个基本的语法错误吗?

你就快到了。。。从以下位置更改代码:

$('.js-size-unit-button').on 'click', (e) ->
为此:

$('.js-size-unit-button').on 'click', (e) =>
为什么这样做有效?“胖箭头”(
=>
)告诉CoffeeScript编译器确保事件处理程序中
this
的值引用您定义的类,而不是其他类。通常,在Javascript中,如果在事件处理程序中使用
this
this
指触发事件的元素

Coffescript文档中对此进行了描述

您可能还需要将
init
方法的声明更改为:

init: ->
致:

确保定义事件处理程序时,this的值可以引用

init: =>