Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialdaly richy tekam kuate
7,713 Pointssetter method problem
get major(){ return this._major; }
set major(major){ if(Student.level=='Senior'||Student.level=='Junior'){ this._major="major"}else if(Student.level=='Sophomore'||Student.level=='Freshman'){ this._major="None"}
}
This code doesn't work. I would like somebody to explain me why please. It is the coding part after the setter video in javascript OOP. Thank you
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){
if(Student.level=='Senior'||Student.level=='Junior'){
this._major="major"}else
if(Student.level=='Sophomore'||Student.level=='Freshman'){
this._major="None"}
}
}
var student = new Student(3.9, 60);
1 Answer
Adam N
70,280 Points2 things:
- If the student's level is Junior or Senior, you're not setting the backing property equal to the value that is passed to the setter method.
- You should be using the "this" keyword like in the getter, so that the setter method will update the specific object it's used on.
Let me know if this helps here