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

Jessie Doherty
Jessie Doherty
5,764 Points

I'm not so sure what exactly is wrong with my setter method, Please help, thank you so much!

I'm following along with the setter method, but my code is not passing the challenge for some reason. I'm not so sure where is wrong...please help! 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';
        }
    }

    get major() {
      if (this.level = "Junior" || this.level = "Senior") {
        return this._major = major; 
      } else if (this.level = "Freshman" || this.level = "Sophomore") {
        return this._major = "None";
      }
    }

    set major(major) {
      this._major = major; 
    }

var student = new Student(3.9, 60);

2 Answers

Dane Parchment
MOD
Dane Parchment
Treehouse Moderator 11,020 Points

So the issues with your code are actually to do with various syntax errors.

  1. You don't actually close your class. Remember, your class is wrapped in curly braces like so: class Dog {}. Currently yours is like: class Dog {
  2. Check your if statements and remember the syntax for conditionals, currently you aren't actually checking the equality of the variables (== or === <--- that one more preferably). Instead you are assigning those values to the variables your checking and thus they will always pass.

Fix those and you should be good!

Jessie Doherty
Jessie Doherty
5,764 Points

Thank you so much for answering my question Dane, Yes, I'm missing a closing } at the end of the class...also I don't need to include a get major() in this one...I should just put all the logic in the setter method, then I'm good. Thank you so much it took me quite some time to figure out why I'm not passing this one.