2014-12-07 60 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