Node.js 是单进程单线程应用程序,因为 V8 引擎提供的异步执行回调接口,这些接口可以处理大量的并发,所以性能很高。
API 几乎都支持回调函数。
基本上所有的事件机制是用设计模式中观察者模式实现。
单线程类似进入一个while(true)的事件循环,直到没有事件观察者时退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.
//引入 events事件模块
var events = require('events')
//引入 util是一个Node.js核心模块,提供常用函数的集合,用于弥补核心js的功能过于精简不足
var util = require('util')
var Person = function(name){
this.name = name
}
// Person继承events.EventEmitter
util.inherits(Person,events.EventEmitter)
var xiaoming = new Person('xiaoming')
var xiaohong = new Person('xiaohong')
var person = [xiaoming,xiaohong]
person.forEach(function(item){
//绑定事件
item.on('speak',function(message){
console.log(message)
})
})
//触发事件
xiaoming.emit('speak','我是小明')
xiaohong.emit('speak','我是小红')