如何使原型中的一个方法显示另一个方法中的另一个变量

问题描述 投票:0回答:1

我想要 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();

javascript prototypejs
1个回答
0
投票

您忘记在

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();

© www.soinside.com 2019 - 2024. All rights reserved.