イベントモジュールとツールモジュールの紹介:
var events = require('events')
var util = require('util')
人コンストラクター:
var Person = function (name) {
this.name = name
}
Personは、イベントのイベントリスナーオブジェクトを継承します。
util.inherits(Person, events.EventEmitter)
2つのテストオブジェクトを作成し、配列に配置します。
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')