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'