在CoffeeScript中,如何将函数作为函数的参数传递,而函数又反过来采用参数?

时间:2014-03-25 14:35:29

标签: javascript node.js coffeescript

我不知道如何正确地说出来,所以我无法通过Google找到答案,但这基本上是我的问题:

我希望我的CoffeeScript在JS中输出这样的内容:(我正在开发一个Node应用程序)

var someapp = require('someapp')
var another = require('another')

someapp.configure(function() {
    someapp.use(another.do('argument'));
});

所以我用这种方式在CoffeeScript中写道:

someapp = require 'someapp'
another = require 'another'

someapp.configure () ->
    someapp.use another.do 'argument'

但相反,我得到了这个输出:

some.configure(function() {
    return someapp.use(another["do"]('argument'));
});

显然,我最大的问题是我在CoffeeScript文档或其他地方找不到正确语法的行return someapp.use(another["do"]('argument'));,所以我希望有人可以指出我正确的方向。提前致谢。

1 个答案:

答案 0 :(得分:1)

根据docs

  

CoffeeScript提供do关键字,它立即调用传递的函数,转发任何参数。

因此,coffeescript输出another["do"]以避免使用do保留关键字。

此外,在这种情况下,函数another.do是恰好是函数的对象属性。可以使用another.do()another["do"]()来访问它。