我试图通过原型继承一个函数,似乎一切都是正确的(据我所知),但我收到错误......任何人都帮我理解这个问题?
功能:
(function($){
var Man = function(info){
this.name = info.name;
this.age = info.age;
this.work = info.work;
}
Man.prototype.tell = function(){
return 'I am Mr.' + this.name;
}
var Dog = function(info){
Man.call(this,info);
}
Dog.prototype = new Man();
var dog1 = new Dog({name:'Dobber',age:3,work:'roming'});
console.log(dog1.tell());
})($);
错误我得到了:
TypeError: info is undefined
答案 0 :(得分:6)
当您致电new Man()
设置Dog
原型时,您不会传递参数。该函数需要一个(这应该是info
)。
我不确定如何纠正它,因为该代码中的设置没有多大意义。
编辑 - 也许只需让Man
构造函数检查参数:
function Man(info) {
if (info !== undefined) {
this.name = info.name;
this.age = info.age;
this.work = info.work;
}
}