在javascript中继承函数

时间:2015-07-28 06:31:57

标签: javascript inheritance

我有一个彼此相似的功能。如何在不重复的情况下轻松声明函数

function constructor (name, numLegs) {
    this.name = name;
    this.numLegs = numLegs;
} 

 function Animal(name, numLegs) {
    this.name = name;
    this.numLegs = numLegs;
 }
 Animal.prototype.sayName = function() {
     console.log("Hi my name is " + this.name);
 };

 // create a Penguin constructor here
 function Penguin(name, numLegs){
     this.name=name;
     this.numLegs = numLegs;
 }

 // create a sayName method for Penguins here
 Penguin.prototype.sayName = function() {
     console.log("Hi my name is " + this.name);
 };

 // our test code
 var theCaptain = new Penguin("Captain Cook", 2);
 theCaptain.sayName();

1 个答案:

答案 0 :(得分:8)

你快到了。

// create a Penguin constructor here
function Penguin(name, numLegs){
    Animal.call(this, name, numLegs);
};

// Reuse the prototype chain
Penguin.prototype = Object.create(Animal.prototype);
Penguin.prototype.constructor = Penguin;