给对象添加事件监听events

引入事件模块和工具模块:

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')

猜你喜欢

转载自blog.csdn.net/qq_41999592/article/details/104393637
今日推荐