Javascript 在coffeescript中将函数作为参数传递

Javascript 在coffeescript中将函数作为参数传递,javascript,function,coffeescript,Javascript,Function,Coffeescript,我试图利用,但我正在努力如何传递函数 这是我的密码: $('#inputID').on 'keyup', => query = $('#inputID').val() func = => console.debug(query) Debounce.debounceFunction func, 300, false 调用debounce函数,300和“false”的传递很好,但“func”不执行 在另一个文件中,我有: root = exports ? thi

我试图利用,但我正在努力如何传递函数

这是我的密码:

$('#inputID').on 'keyup', =>
    query = $('#inputID').val()
    func = => console.debug(query)
    Debounce.debounceFunction func, 300, false
调用debounce函数,300和“false”的传递很好,但“func”不执行

在另一个文件中,我有:

root = exports ? this

class Debouncer
  debounceFunction: (func, threshold, execAsap) ->
    timeout = null
    (args...) ->
        obj = this
        delayed = ->
            func.apply(obj, args) unless execAsap
            timeout = null
        if timeout
            clearTimeout(timeout)
        else if (execAsap)
            func.apply(obj,args)
        timeout = setTimeout delayed, threshold || 100

root.Debounce = new Debouncer()
在我看来,使用debounce只是定义函数。你也必须执行它

func = ->
  query = $('#inputID').val()
  console.debug(query)

debounceFunc = debounce func, 300, false

$('#inputID').on 'keyup', -> debounceFunc()

食谱中的例子有误导性。您希望取消公告器在注册事件处理程序时返回函数。这样,每次发生keyup事件时都会运行超时逻辑

$('#inputID').on 'keyup', Debounce.debounceFunction(func, 300, false)

谢谢Jamshid!但是去盎司函数正在执行,问题是我传递给它的函数没有被执行。我澄清了我的问题——这方面还不清楚。谢谢,谢谢,谢谢。小提琴非常有用。