I have a question specific a bit to inheritance in javascript rather than node.js:
// 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;
Then, when i simply try to call (say in main.js):
var foo = require('./foo.js');
foo.on('bar', function(){ ... });
An error is generated before i even call foo.init();
:
foo.on('bar', function(){ ... })
^
TypeError: Property 'on' of object #<Object> is not a function
Isn't it possible to inherit from EventEmitter when I chose to code in IIFE pattern? Or my error is related something else?