如何将方法导出到另一个模块
我有事件延伸的对象:
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); }
我猜想require / export是错误的,但我找不到。
尝试这个:
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
第二种types。 这应该做你想要的; 即模块的导出是A
一个实例, require('./controller')
返回A
实例,可以调用f(arg1, arg2)
。
顺便说一句, Object.create()
是无关紧要的。