JavaScript Object-Oriented JavaScript Getters and Setters Creating Setter Methods

Can anyone point out where I am going wrong?

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

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

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

    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';
        }
    };

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

};

var student = new Student(3.9, 60);

2 Answers

Steven Parker
Steven Parker
203,722 Points

You're very close! Here's a few hints:

  • the closing brace for the "else" block is missing
  • the closing braces of the setter, getter, and class do not need semicolons after them
  • a setter method does not need to "return" any value

Thanks! Completely missed that closing brace.

Steven Parker
Steven Parker
203,722 Points

Glad I could help, and happy holidays! :christmas_tree: