我不确定我在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?
答案 0 :(得分:1)
答案是括号。
// drive.coffee
module.exports = (distance, speed) ->
distance / speed
// index.coffee
driveFunction = require('drive')
hours = driveFunction(1200, 120)
或更短
hours = require('drive')(1200, 120)