mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
PR-URL: https://github.com/nodejs/node/pull/16738 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
unherit

Create a custom constructor which can be modified without affecting the original class.
Installation
npm:
npm install unherit
Usage
var EventEmitter = require('events').EventEmitter;
/* Create a private class which acts just like
* `EventEmitter`. */
var Emitter = unherit(EventEmitter);
Emitter.prototype.defaultMaxListeners = 0;
/* Now, all instances of `Emitter` have no maximum
* listeners, without affecting other `EventEmitter`s. */
assert(new Emitter().defaultMaxListeners === 0); // true
assert(new EventEmitter().defaultMaxListeners === undefined); // true
assert(new Emitter() instanceof EventEmitter); // true
API
unherit(Super)
Create a custom constructor which can be modified without affecting the original class.
Parameters
Super(Function) — Super-class.
Returns
Function — Constructor acting like Super, which can be modified
without affecting the original class.