2014-12-07 62 views
0

,不检查我以前的代码在JavaScript我需要的模块在应用的NodeJS像这样:CoffeeScript的需要与参数模块,browserify

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码多。

回答

3

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

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

+0

我这样做,并说,'找不到模块 '/ foo'',但这个工程: '新(要求(' ./富 '))(' 一些字符串)' 为什么您认为? – 2014-12-07 05:37:01

+0

好问题,我不完全确定。表达式执行的顺序可能不是我们所期望的,没有父项。 – neouser99 2014-12-07 05:44:06