我的对象来自事件:
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 :(得分: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()
是无关紧要的。