Security News
New Proposed CISA Mandate Would Require Critical Infrastructure to Report Ransom Payments Within 24 Hours
CISA has proposed a set of new rules that would require critical infrastructure to report cyber incidents and ransom payments.
inherits
Advanced tools
A tiny simple way to do classic inheritance in js
Weekly downloads
Package description
The inherits npm package is a simple utility module that allows you to implement inheritance in JavaScript. It facilitates the prototype chain linkage between a constructor function (child) and another constructor function (parent) to achieve classical inheritance patterns.
Inheritance
This code demonstrates how to use the inherits package to set up classical inheritance between a custom constructor MyStream and the built-in EventEmitter constructor. It allows instances of MyStream to inherit methods and properties from EventEmitter.
var inherits = require('inherits');
var EventEmitter = require('events').EventEmitter;
function MyStream() {
EventEmitter.call(this);
}
inherits(MyStream, EventEmitter);
MyStream.prototype.write = function(data) {
this.emit('data', data);
};
var stream = new MyStream();
console.log(stream instanceof EventEmitter); // true
console.log(MyStream.super_ === EventEmitter); // true
The util package is a core Node.js module that provides a variety of utilities including the 'util.inherits' method, which is similar to the 'inherits' package. It allows you to set up inheritance between constructor functions. However, 'util.inherits' does not support ES6 classes and is considered a legacy feature in Node.js.
The extend package is a utility to shallowly extend one object with one or more others. It is similar to inherits in that it is used to extend objects, but it does not set up the prototype chain for classical inheritance. Instead, it copies properties from source objects to a target object.
The class-extend package provides helper functions for dealing with inheritance in JavaScript, specifically designed for ES6 classes. It offers a more modern approach compared to inherits, which is more suited for constructor functions rather than ES6 classes.
Readme
A dead simple way to do inheritance in JS.
var inherits = require("inherits")
function Animal () {
this.alive = true
}
Animal.prototype.say = function (what) {
console.log(what)
}
inherits(Dog, Animal)
function Dog () {
Dog.super.apply(this)
}
Dog.prototype.sniff = function () {
this.say("sniff sniff")
}
Dog.prototype.bark = function () {
this.say("woof woof")
}
inherits(Chihuahua, Dog)
function Chihuahua () {
Chihuahua.super.apply(this)
}
Chihuahua.prototype.bark = function () {
this.say("yip yip")
}
// also works
function Cat () {
Cat.super.apply(this)
}
Cat.prototype.hiss = function () {
this.say("CHSKKSS!!")
}
inherits(Cat, Animal, {
meow: function () { this.say("miao miao") }
})
Cat.prototype.purr = function () {
this.say("purr purr")
}
var c = new Chihuahua
assert(c instanceof Chihuahua)
assert(c instanceof Dog)
assert(c instanceof Animal)
The actual function is laughably small. 10-lines small.
FAQs
Browser-friendly inheritance fully compatible with standard node.js inherits()
The npm package inherits receives a total of 58,277,418 weekly downloads. As such, inherits popularity was classified as popular.
We found that inherits demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA has proposed a set of new rules that would require critical infrastructure to report cyber incidents and ransom payments.
Security News
Redis is no longer OSS, breaking its explicit commitment to remain under the BSD 3-Clause License forever. This has angered contributors who are now working to fork the software.
Product
Socket AI now enables 'AI detected potential malware' alerts by default, ensuring users benefit from AI-powered state-of-the-art malware detection without needing to opt-in.