オブジェクトにイベントを追加してイベントを監視する

イベントモジュールとツールモジュールの紹介:

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

 

おすすめ

転載: blog.csdn.net/qq_41999592/article/details/104393637