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);
}

我猜需要/导出的东西是错误的,但我找不到什么。

4

1 回答 1

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()是无关紧要的。

于 2012-05-26T23:56:44.243 回答