2012-05-22 26 views
1

我有對象從事件延伸:如何方法導出到另一個模塊

var A = function() { 
    EventEmitter.call(this); 
}; 

inherits(A, EventEmitter); 

var a = module.exports = Object.create(new A()); 

A.prototype.method = module.exports = function f(arg1,arg2){} 

在另一個模塊我做:

var controller = require('./filename'); 

function main(){ 
    controller.f(arg1,arg2); 
} 

我想的東西與要求/出口是錯誤的,但我不能找不到什麼。

+0

這是什麼'繼承','原型'和其他伏都教你已經發生了什麼?模塊被緩存,因此只有一次它們的出口實例,不是嗎? – Matt

回答

1

試試這個:

var A = function() { 
    EventEmitter.call(this); 
}; 

inherits(A, EventEmitter); 

var a = module.exports = new A(); 

A.prototype.f = function(arg1, arg2) { 
    console.log("Hello, world!"); 
} 

你的愚蠢是重新分配module.exports第二類型。這應該做你想要的;即模塊的導出是A的實例,因此require('./controller')返回A實例,您可以在該實例上調用f(arg1, arg2)

順便說一下,Object.create()是無關的。

相關問題