让我们说我们正在处理很多企鹅。创建一个Penguin类肯定会很好,所以以后我们可以给它一些独特的企鹅方法,而不是把它与Animal类混淆。
说明
创建一个新的Penguin类构造函数。企鹅是动物,所以它也应该有name和numLegs属性以及sayName方法,它打印与Animal的sayName方法相同的东西。
我们还没有完成动物,所以我们仍然包含了Animal构造函数及其sayName方法。最后两行测试你的企鹅代码。
我的代码在哪里出错?
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
var penguin = new Penguin(name,numLegs);
function sayName(){
console.log("Hi, this is" + this.name);
};
// create a sayName method for Penguins here
// our test code
var theCaptain = new Penguin("Captain Cook", 2);
theCaptain.sayName();
var penguin = new Penguin("captain1",54)
答案 0 :(得分:0)
可能不是练习所要求的,但这就是我要做的事情:
function Penguin () {
Animal.apply(this, arguments);
}
Penguin.prototype = Object.create(Animal.prototype);
Penguin.prototype.constructor = Penguin;
上面的代码使 Penguin 实例继承自 Animal (sayName
方法)。此外, Animal 构造函数用于设置 Penguin 实例的自有属性(腿的名称和数量)。
答案 1 :(得分:0)
这是练习的正确代码:
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;
}
Penguin.prototype.sayName = function() {
console.log("Hi my name is "+this.name);
};
// provided code to test above constructor and method
var penguin = new Penguin("Captain Cook", 2);
penguin.sayName();