Prototypical Inheritance

Implement prototypical inheritance by replacing the prototype of one constructor with the prototype of another constructor.

Usage

var inherit = require( '@stdlib/utils/inherit' );

inherit( ctor, superCtor )

Implements prototypical inheritance by replacing the prototype of one constructor with the prototype of another constructor.

function Foo() {
    return this;
}

Foo.prototype.beep = function beep() {
    return 'boop';
};

function Bar() {
    Foo.call( this );
    return this;
}

inherit( Bar, Foo );

Notes

  • This function is not designed to work with ES2015/ES6 classes. For ES2015/ES6 classes, use class with extends.

Examples

var inherit = require( '@stdlib/utils/inherit' );

function Foo() {
    return this;
}
Foo.prototype = {};
Foo.prototype.beep = function beep() {
    return 'boop';
};

function Bar() {
    Foo.call( this );
    this._super = Foo.prototype;
    return this;
}

// Set up prototypical inheritance:
inherit( Bar, Foo );

var bar = new Bar();

var bool = ( bar instanceof Bar );
// returns true

bool = ( bar instanceof Foo );
// returns true

bool = bar.beep();
// returns 'boop'