node util 继承 和 event 事件驱动

1.util 全局变量

1.1util.inherits(constructor,superConstructor)

这里是一个实现对象间原型继承的函数。
代码如下:


声明一个People对象

var util=require('util');
function People(){
    this.name = 'people name';
    this.age=20;
    this.sayHello=function(){
        console.log('hello '+this.name + ' this year is '+this.age);
    }
}

//通过原型链增加  showName方法
People.prototype.showName=function(){
    console.log(this.name);
}

//实例化一个对象
var objPeople = new People();
//调用方法
objPeople.showName();
objPeople.sayHello();

//打印一下对象
console.log(objPeople);

效果如下:

Paste_Image.png

继承People 对象

//新建一个对象
function Student(){
    this.name='student name';
}
//继承People
util.inherits(Student,People);

//实例化
var stu =new Student();

//调用  方法
// stu.sayHello();     //该方法不是通过原型链声明,报错找不到
stu.showName();

//打印一下对象
 console.log(stu);

Paste_Image.png

******注意********
如果不是通过原型链实现的方法是没有被继承下来的。

1.2、util.inspect(obj,[showHidden],[depth],[colors])

该方法是见任意对象装欢成字符串方法,通常用于调试和错误输出,它最少接受一个参数object.
shoeHidden:可选,true 会输出更多隐藏信息
depth: 标识最大的递归层数,默认2层,指定null则打印全部。
color:true,输出格式会以ANSI颜色编码。


Paste_Image.png

2、event 事件驱动

event 是nodejs最重要的模块,没有之一。原因是Nodejs 本身架构就是事件式的,而它提供了唯一的接口,所以就成为了Nodejs事件编程的基石。event模块不仅用于用户代码与Nodejs下层事件循环的交互,还几乎被所有的模块依赖。

2.1 事件发射器

event模块只提供了一个对象。events.EventEmitter。EventEmitter 的核心就是事件发射与事件监听器功能的封装。EventEmitter 的每一个事件由一个事件或若干个参数组成,事件名是一个字符串,通常表达一定的语义。对于每个事件,EventEmitter 支持若干个事件监听器。当事件发射时,注册到这个事件的事件监听器被依次调用,事件参数作为函数参数传递。

var events=require('events');

// 实例化事件对象
var emitter = new events.EventEmitter();

// 注册事件监听1
emitter.on('somEvent',function(arg1,arg2){
    console.log('Listener1',arg1,arg2);
});

// 注册事件监听2
emitter.on('somEvent',function(arg1,arg2){
    console.log('Listener2',arg1,arg2);
});

emitter.emit('somEvent','can',1992);
2.2、error 事件

EventEmitter 定义了一个特殊的事件error,它包含错误的含义,我们在遇到异常的时候通常会发射error事件,当error 事件发射时,
EventEmitter 规定弱国没有相应的监听器,Node.js 会把它当成异常,退出程序并且打印调用栈,我们一般要发射error的事件对象设置监听器,避免遇到错误后整个程序奔溃。
代码:


var events=require('events');
var emitter = new events.EventEmitter();
emitter.emit('error');

你可能感兴趣的:(node util 继承 和 event 事件驱动)