当我运行以下代码时,出现错误:TypeError: Object [object Object]
// create your Animal class here
function Animal(name, numLegs)
{
this.name = name;
this.numLegs = numLegs;
}
// create the sayName method for Animal
Animal.prototype = function sayName()
{
console.log("Hi, my name is [name]");
};
// provided code to test above constructor and method
var penguin = new Animal("Captain Cook", 2);
penguin.sayName();
为什么?
答案 0 :(得分:5)
我认为这是问题
Animal.prototype = function sayName(){
console.log("Hi, my name is [name]");
};
应该是
Animal.prototype.sayName = function(){
console.log("Hi, my name is ", this.name);
};
此外[name]
不是javascript:S
答案 1 :(得分:2)
动物原型设置不正确:
Animal.prototype = {
sayName: function() {
console.log("Hi, my name is " + this.name);
}
};
将原型设置为函数并非完全错误,但问题是代码打算在原型对象上使用名为“sayName”的属性。提供名为“sayName”的函数不会用于此目的;该名称不作为函数对象的属性公开。
另请注意,只需将“[name]”放入记录到控制台的字符串中,就不会记录动物名称。你必须从对象的“name”属性中明确地将它修补到字符串中,就像我发布的代码一样。