引入事件模块和工具模块:
var events = require('events')
var util = require('util')
Person构造函数:
var Person = function (name) {
this.name = name
}
Person继承events的事件监听对象:
util.inherits(Person, events.EventEmitter)
创建两个测试对象,并放在数组当中:
var xiaoming = new Person('xiaoming')
var zhangshan = new Person('zhangshan')
var human = [xiaoming, zhangshan]
让每个对象都添加一个‘speak’事件,并传入参数:
human.forEach(function (someperson) {
someperson.on('speak', function (word) {
console.log(someperson.name, word)
})
})
当‘speak’事件发生时,函数被触发;这里我们手动触发speak事件:
xiaoming.emit('speak', 'nihao')
zhangshan.emit('speak', 'laji')
测试结果:
整体代码:
var events = require('events')
var util = require('util')
var Person = function (name) {
this.name = name
}
util.inherits(Person, events.EventEmitter)
var xiaoming = new Person('xiaoming')
var zhangshan = new Person('zhangshan')
var human = [xiaoming, zhangshan]
human.forEach(function (someperson) {
someperson.on('speak', function (word) {
console.log(someperson.name, word)
})
})
xiaoming.emit('speak', 'nihao')
zhangshan.emit('speak', 'laji')