我想要 display() 方法显示平均学生。 “这个”不起作用,我无法想象如何以其他方式做到这一点。
这是我的代码。
function Student(name, age, grades) {
this.name = name;
this.age = age;
this.grades = grades;
}
Student.prototype = {
averageGrade() {
let average = 0;
let gradesSum = 0;
for (let i = 0; i < this.grades.length; i++) {
gradesSum += this.grades[i];
average = gradesSum / this.grades.length;
}
console.log(average);
},
display() {
console.log(this.name, this.age, "Average grade: ", this.average)
}
}
const student1 = new Student("John", 42, [2, 2, 2, 2]);
student1.averageGrade();
student1.display();
您忘记在
this.average
函数中分配 averageGrade()
:
function Student(name, age, grades) {
this.name = name;
this.age = age;
this.grades = grades;
}
Student.prototype = {
averageGrade() {
let average = 0;
let gradesSum = 0;
for (let i = 0; i < this.grades.length; i++) {
gradesSum += this.grades[i];
average = gradesSum / this.grades.length;
}
// assign parameter to instance
this.average = average;
console.log(average);
},
display() {
console.log(this.name, this.age, "Average grade: ", this.average)
}
}
const student1 = new Student("John", 42, [2, 2, 2, 2]);
student1.averageGrade();
student1.display();