Coffeescript需要带参数的模块,browserify

时间:2014-12-07 05:29:51

标签: javascript node.js coffeescript browserify

如果不在javascript中检查我之前的代码,我可以在nodejs应用程序中要求模块,如下所示:

app = require('./foo')('argstring')

我还没有,检查我的任何代码库,但我当然记得我可以在需求之后立即传递参数。

但我现在正在做客户端应用程序,并决定使用browserify在客户端js应用程序中使用require。 (这次我正在使用coffeescript)

我有一个类似的课程:

class Foo
  constructor: (@argstring) ->
  bar: () ->
    console.log @argstring

module.exports = Foo

现在我必须在我的主咖啡文件中使用它:

fap = require('./foo')('some string')
console.log fap // returns undefined

虽然我这样做:

Foo = require('./foo')
fap = new Foo 'some string'
console.log fap // returns the object correctly

虽然我可以,但显然选择使用实例化,我不喜欢,因为它更多是1个代码。

1 个答案:

答案 0 :(得分:3)

foo = new (require('./foo'))('some string')

你应该在一行上做这个实例化,只需要确保并实际new对象,并调用正确的构造函数方法。