javascript继承自一个类

时间:2013-04-04 09:00:49

标签: javascript

我正在学习继承。在下面的代码中

1)企鹅继承自动物

2)当我打电话给penguin.sayName();为什么输出“嗨我的名字未定义”;

function Animal(name,numLegs){
    this.name = name;
    this.numLegs = numLegs;


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


function Penguin(){}

Penguin.prototype = new Animal();

var penguin = new Penguin("Captain Cook", 2);
penguin.sayName();

1 个答案:

答案 0 :(得分:2)

您需要通过函数构造函数将namenumLegs属性添加到penguin对象。这两个属性特定于Animal对象,不会通过调用Penguin构造函数来分配。

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

工作示例: http://jsfiddle.net/5A7hH/

您还可以在原型链上使用构造函数,这与Java中的super()构造函数的调用类似。

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