node/deps/npm/node_modules/inherits
Ryan Dahl b488be127a Include NPM, update .pkg to install it.
.msi update coming soon.
2011-11-21 10:50:52 -08:00
..
LICENSE Include NPM, update .pkg to install it. 2011-11-21 10:50:52 -08:00
README.md Include NPM, update .pkg to install it. 2011-11-21 10:50:52 -08:00
inherits-old.js Include NPM, update .pkg to install it. 2011-11-21 10:50:52 -08:00
inherits.js Include NPM, update .pkg to install it. 2011-11-21 10:50:52 -08:00
package.json Include NPM, update .pkg to install it. 2011-11-21 10:50:52 -08:00

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.