Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

bloodline

jhermsmeier37.3kMIT1.0.1

Proper inheritance in JavaScript

inheritance, inherit, inherits, util, derive, prototype, chain

readme

Bloodline

npm npm license npm downloads build status

Proper inheritance in JavaScript

Install via npm

$ npm install --save bloodline

Usage

var inherit = require( 'bloodline' )
inherit( Constructor, SuperConstructor )

Notes

ES6 / ES2015 / ESNext

ES6 classes cannot be subclassed by ES5 classes (ES5 classes cannot inherit from ES6 classes); there will be a TypeError: Class constructor SuperConstructor cannot be invoked without 'new'. This is not a limitation of this module, but of the ECMAScript specification.

The other way around also has issues; ES6 classes don't preserve the prototype chain when extending ES5 classes (for an example, see https://gist.github.com/jhermsmeier/e6fb16fab193c0aa4220c98de64fe546).

So much for backwards compatibility.

util.inherits

Usage of Node core's of util.inherits() is discouraged (see nodejs.org/api/util#util_inherits), because of its semantic incompatibility. NOTE: This module does not exhibit these semantic incompatibilities.