I really can't understand 'this' in Node.js. Please explain me : I can't understand 'this' in 'Readable.call(this)' and how they work. Please explain me!

    var Readable = require('stream').Readable;
    var util = require('util');
    function Counter() {
    Readable.call(this);
    this._max = 1000;
    this._index = 1;
    }
    util.inherits(Counter, Readable);
    Counter.prototype._read = function () {
    var i = this._index++;
    if (i > this._max)
    this.push(null);
    else {
    var str = ' ' + i;
    this.push(str);
    }
    };