だから私は何らかの方法でパラメータを「継承」しようとしていて、の使用に出くわしました
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が得られます。だから私の質問は - 実際にそれを「修正」する方法です
すでに尋ねられた質問をした場合は申し訳ありませんが、別の同様の投稿へのリダイレクトを歓迎します. 前もって感謝します。