function Animal(name) {
this.name = name
this.foods = ['pork']
this.run = function () {
console.log('running')
}
}
function Dog(name) {
Animal.call(this, name)
}
function Cat(name) {
this.name = name
}
Cat.prototype = new Animal()
Cat.prototype.constructor = Cat
var cat1 = new Cat("cat1")
var cat2 = new Cat("cat2")
cat1.foods.push('chicken')
console.log('cat2.foods', cat2.foods)
function Chicken(name) {
Animal.call(this, name)
}
Chicken.prototype = new Animal()
Chicken.prototype.constructor = Chicken
function Pig(obj) {
function Fn() { }
Fn.prototype = obj
return new Fn()
}
function FatPig() {
var pig = new Pig()
pig.eat = function () {
console.log('eat a lot')
}
return pig
}
function SuperPig() {
Animal.call(this)
}
SuperPig.prototype = SuperPig(Animal.prototype)
SuperPig.prototype.constructor = SuperPig