coffeescript将参数传递给返回的函数

时间:2015-05-20 19:46:55

标签: coffeescript method-chaining

我不确定我在CoffeeScript中试图完成的是一个JavaScript术语,但这是用例:

我正在使用CommonJS加载JS模块,他们可能会加载对象,函数和任何东西。 例如,如果我加载了一个对象文字,我可以在require()调用之后链接它的属性 in-line

// car.js returns an object properties and methods
var make = require('car').make

这也可以在CoffeeScript中实现,因为它们引入了方法链:

make = require 'car'
  .make

但是...

在JS中,如果require()' d文件返回一个函数,我可以在线调用它:

// drive.js 
module.exports = function(distance, speed) {
  return distance / speed;
}

// index.js
var hours = require('drive')(1200, 120); // 10

以下尝试会导致错误:

// drive.coffee
module.exports = (distance, speed) ->
  distance / speed

// index.coffee
hours = require 'drive' 1200, 120           // error unexpected number
hours = require 'drive'
  1200, 120                                 // error unexpected indentation
hours = require 'drive' (1200, 120)         // error unexpected (

我该怎么做才是CoffeeScript?

1 个答案:

答案 0 :(得分:1)

答案是括号。

// drive.coffee
module.exports = (distance, speed) ->
  distance / speed

// index.coffee
driveFunction = require('drive')
hours = driveFunction(1200, 120)

或更短

hours = require('drive')(1200, 120)
相关问题