You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
isaacs 33a9ac6087 Upgrade npm to 1.1.21 13 years ago
..
LICENSE Upgrade npm to 1.1.21 13 years ago
README.md Include NPM, update .pkg to install it. 13 years ago
inherits-old.js Include NPM, update .pkg to install it. 13 years ago
inherits.js Include NPM, update .pkg to install it. 13 years ago
package.json Upgrade npm to 1.1.21 13 years ago

README.md

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.