JavaScript Object-Oriented JavaScript Getters and Setters Creating Setter Methods

Mateusz Dziki
Mateusz Dziki
5,899 Points

Where is mistake?

I don't understand where is mistake. When i run my code, i see that student.major property is correct.

creating_setters.js
class Student {
    constructor(gpa, credits){
        this.gpa = gpa;
        this.credits = credits;
    }

    stringGPA() {
        return this.gpa.toString();
    }

    set major(major){
      if(major === 'Senior' || major === 'Junior' ){
        this._major = major;
      } else if(major === 'Freshman' || major === 'Sophomore' ){
        this._major = 'None';
      }
    }

    get major() {
      return this._major;
    }

    get level() {
        if (this.credits > 90 ) {
            return 'Senior';
        } else if (this.credits > 60) {
            return 'Junior';
        } else if (this.credits > 30) {
            return 'Sophomore';
        } else {
            return 'Freshman';
        }
    }
}

var student = new Student(3.9, 60);
student.major = student.level;

1 Answer

Steven Parker
Steven Parker
203,443 Points

The instructions say "If the student's level is Junior or Senior...", but this code is testing the argument "major" instead of the level.