0
我想通過原型繼承一個函數,它似乎都是正確的(根據我),但我得到錯誤...任何人都可以幫助我理解這個問題?'原型'拋出TypeError:info是undefined
功能:
(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
什麼,如果條件究竟在這裏做? – 3gwebtrain
@ 3gwebtrain它只是檢查參數是否實際傳遞給函數。這樣,當您通過調用「Man」而沒有「info」參數來設置「Dog」原型時,您不會得到異常。 – Pointy
習慣性的修正是在設置繼承時不要調用構造函數。你用'Object.create'來做到這一點,如果需要的話可以添加一個墊片。 'Dog.prototype = Object.create(Man);' –