-4

假设我们正在处理很多企鹅。创建一个 Penguin 类肯定会很好,这样也许以后我们可以给它一些企鹅独有的方法,而不会将它与 Animal 类混淆。

指示

创建一个新的 Penguin 类构造函数。企鹅是一种动物,因此它还应该具有 name 和 numLegs 属性以及一个 sayName 方法,该方法打印与 Animal 的 sayName 方法相同的内容。

我们还没有处理完动物,所以我们仍然包含了 Animal 构造函数和它的 sayName 方法。最后两行测试您的 Penguin 代码。

我的代码哪里出错了?

                  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)
4

2 回答 2

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();
于 2013-12-29T01:53:23.557 回答
0

可能不是练习所要求的,但这就是我的做法:

function Penguin () {
    Animal.apply(this, arguments);   
}
Penguin.prototype = Object.create(Animal.prototype);
Penguin.prototype.constructor = Penguin;

上面的代码使Penguin实例继承自AnimalsayName方法)。此外,Animal构造函数用于设置Penguin实例的自身属性(腿的名称和数量)。

于 2013-07-13T14:09:43.870 回答