【发布时间】:2013-07-20 21:02:44
【问题描述】:
我有一个关于 javascript 继承而不是 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;
然后,当我只是尝试调用时(比如在 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 继承?还是我的错误与其他有关?
【问题讨论】:
标签: javascript node.js inheritance eventemitter