所以我想以某種方式「繼承」參數,我碰到使用當使用function.apply的參數(這一點,參數)爲了得到混合
function.apply(this, arguments)
來了,它做的工作...大部分都是。我得到的是,當我從父對象調用一個函數時,父函數的參數在其他函數前面得到,當我從繼承器調用一個函數時,它們不會。
這裏是我的代碼:
function Human(name, gender, tel, address){
this.name = name;
this.gender = gender;
this.address = address;
this.tel = tel;
}
Human.prototype.introduce = function(){
console.log("Hi I'm " + this.name + " a " + this.gender + " from " + this.address +
". My number is " + this.tel);
}
Student.prototype = new Human;
Student.prototype.constructor = Student;
function Student(school,marks){
Human.apply(this, arguments);
this.school = school;
this.marks = marks;
}
Student.prototype.average = function(){
this.total = 0;
this.average = 0;
this.markslength = this.marks.length;
for(var i = 0; i<this.markslength; i++){
this.total = this.total + this.marks[i]
}
this.average = (this.total)/(this.markslength);
var marks3 = [6,6,2]
var Nasko = new Student('Nasko', 'Male', 14421687, 'Sofia', 'FELS', marks3);
當我做:console.log(Nasko.name);
這是確定的。 但是當我做console.log(Nasko.average());
它給我NaN。 所以我的問題是 - 如何實際'修復'它
對不起,如果我問了一個已經問過的問題,但我真的不知道如何問它在任何短的重定向到另一個類似的職位將受歡迎。提前致謝。
您是否期待'new'的前四個參數應用於'Human',最後兩個參數是'Student'? – pimvdb
是的,這就是我想要做的。 –