Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript Object-Oriented JavaScript Getters and Setters Creating Setter Methods

Joel Rothstein
Joel Rothstein
6,062 Points

Setter method quiz

WOndering why this is not working

get major(){ return this.major; }

set major(major){ this._major=major if (this.credits > 90 ) { return 'Senior'; } else if (this.credits > 60) { return 'Junior'; } else if (this.credits > 30) { return 'Sophomore'; } else { return 'Freshman'; } }

}

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';
        }
    }
  get major(){
  return this.major;
  }


  set major(major){
    this._major=major
    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);

1 Answer

Steven Parker
Steven Parker
211,016 Points

It looks like you copied the code from the "level" getter method. It does something entirely different from what a setter method would do.

The backing property should only be set to the parameter if the level is either "Junior" or "Senior". Otherwise it should be set to the string "None".

Also:

  • the instructions don't ask for a "major" getter method
  • setters don't need to return a value