JavaScript Object-Oriented JavaScript Getters and Setters Creating Setter Methods

Aziz Kemal HOSCAN
Aziz Kemal HOSCAN
Full Stack JavaScript Techdegree Student 8,036 Points

Your setter method is returning the wrong value for the major property.

I am having ///Your setter method is returning the wrong value for the major property./// problem with my code please help!

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) {
      this._major = major;
      if(Student.level === 'Junior' || Student.level === 'Senior') {
        return this._major = major;
      };
      if(Student.level === 'Freshman' || Student.level === 'Sophomore'){
        return this._major = 'None';
      };
    }
}

var student = new Student(3.9, 60);

1 Answer

Steven Parker
Steven Parker
180,223 Points

Here's a few hints:

  • the properties of the current instance are accessed using "this." (instead of "Student.")
  • a setter does not need to return any value
  • you don't need a second "if", you can use a plain "else" instead
  • you don't need to assign the backing store before the test since it will always be overwritten
Steven Parker
Steven Parker
180,223 Points

Just "pay it forward" ... leave an answer when someone else asks something you know. :wink: