在网上看到一段代码,有些疑惑,如下: var events=require(‘events’); var util=require(‘util’); function _base(){ this.emitter=new events.EventEmitter(this); }; util.inherits(_base,events.EventEmitter); //继承 _base.prototype.onEvent=function(eventName,callback){ this.emitter.on(eventName,callback); } _base.prototype.emitEvent=function(eventName,arg){ this.emitter.emit(eventName,arg); } module.exports=_base; 代码老了一些,有写疑惑 1、this.emitter=new events.EventEmitter(this); 觉得emitter=new events.EventEmitter(); 觉得this 有必要么?很多时候,一些代码,这些this 都可以省略吧。写成emitter=new events.EventEmitter(); 2、util.inherits 这段是必须的吗?(es6 已经是 class 和 extends,可以替代吧) 3、然后,我把 prototype 写法再改一下,塞到base 函数内,比如: function _base(){ this.emitter=new events.EventEmitter(this); return { onEvent: function(eventName,callback){ this.emitter.on(eventName,callback); } }; }; 这样也可以吧。。。 就上面问题,大家給个意见吧
都是版本升级带来的困惑啊,都是老的做法
- https://cnodejs.org/topic/532545c18943ad1012028c14 现在貌似废纸了那个模块
- util.inherits不是必须的
- 不可以。。。