阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js util.inherits

      Node.js util.inherits(constructor, superConstructor)

      版本历史

      版本变更
      v5.0.0The constructor parameter can refer to an ES6 class now.
      v0.3.0新增于: v0.3.0
      • constructor < Function>
      • superConstructor < Function>

      注意,不建议使用 util.inherits()。 请使用 ES6 的 class 和 extends 关键词获得语言层面的继承支持。 注意,这两种方式是语义上不兼容的。

      从一个构造函数中继承原型方法到另一个。 constructor 的原型会被设置到一个从 superConstructor 创建的新对象上。

      superConstructor 可通过 constructor.super_ 属性访问。

      const util = require('util');
      const EventEmitter = require('events');
      
      function MyStream() {
        EventEmitter.call(this);
      }
      
      util.inherits(MyStream, EventEmitter);
      
      MyStream.prototype.write = function(data) {
        this.emit('data', data);
      };
      
      const stream = new MyStream();
      
      console.log(stream instanceof EventEmitter); // true
      console.log(MyStream.super_ === EventEmitter); // true
      
      stream.on('data', (data) => {
        console.log(`接收的数据:"${data}"`);
      });
      stream.write('运作良好!'); // 接收的数据:"运作良好!"
      

      例子:使用 ES6 的 class 和 extends:

      const EventEmitter = require('events');
      
      class MyStream extends EventEmitter {
        write(data) {
          this.emit('data', data);
        }
      }
      
      const stream = new MyStream();
      
      stream.on('data', (data) => {
        console.log(`接收的数据:"${data}"`);
      });
      stream.write('使用 ES6');
      

      更多内容请参考:Node.js util 实用工具,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录