JavaScript Object-Oriented JavaScript Getters and Setters Creating Setter Methods

Getter and Setter

I wrote my own logic at here, just i don t know where s my logic wrong.

Hope someone can help me out,thank you so much!

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(x) {
        var score = this._major = x;
     if(level() == 'Junior' || level() == 'Senior') {return score }
     if(level() == 'Freshman' || level() == 'Sophomore') {return score = null}
   }
}

var student = new Student(3.9, 60);

1 Answer

Some hints:

  • Setters don't return values they set them. Returning values is what getters are for
  • You have the right idea with this._major = x for what the setter should do
  • For Freshman and Sophomore this._major = 'None'
  • In your setter you should be checking the instance value of level by using this.level

Thank you so much!