美文网首页程序员
node util 继承 和 event 事件驱动

node util 继承 和 event 事件驱动

作者: 幺加幺 | 来源:发表于2017-02-28 16:44 被阅读134次

    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 事件驱动

        本文链接:https://www.haomeiwen.com/subject/afwzwttx.html