如果不在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个代码。
答案 0 :(得分:3)
foo = new (require('./foo'))('some string')
你应该在一行上做这个实例化,只需要确保并实际new
对象,并调用正确的构造函数方法。