大多數(shù)時(shí)候我們不會(huì)直接使用EventEmitter, 而是在對(duì)象中繼承它。 包括fs、net 、http 在內(nèi)的,只要是支持事件響應(yīng)的核心模塊都是EventEmitter的子類。
為什么要這樣做呢?原因有兩點(diǎn):
- 首先具有某個(gè)實(shí)體功能的對(duì)象實(shí)現(xiàn)事件符合語義,事件的監(jiān)聽和發(fā)射應(yīng)該是一個(gè)對(duì)象的方法。
- 其次JavaScript的對(duì)象機(jī)制是基于原型的,支持部分多重繼承,繼承EventEmitter不會(huì)打亂對(duì)象原有的繼承關(guān)系。
結(jié)束