Node.jsではなくjavascriptでの継承に少し特有の質問があります:
// foo.js
var events = require('events');
var util = require('util');
var Foo = (function(){
var foo = {};
events.EventEmitter.call(foo);
foo.init = function(){
foo.emit('bar');
};
util.inherits(parser, events.EventEmitter);
return {
bind: foo.init,
on: foo.on // I suppose this resolves to event emitter's on method
};
}());
module.exports = Foo;
次に、単に呼び出そうとすると(main.jsで言う):
var foo = require('./foo.js');
foo.on('bar', function(){ ... });
呼び出す前にエラーが生成されますfoo.init();
:
foo.on('bar', function(){ ... })
^
TypeError: Property 'on' of object #<Object> is not a function
IIFE パターンでコーディングすることを選択した場合、EventEmitter から継承することはできませんか? または、私のエラーは何か他のものに関連していますか?