Use getters and setters toControl Access to an Object

Tell us what’s happening:
I wrote what i thought was the answer and the test came back saying “Thermostat should be able to be instantiated”, “a getter should be defined”, and a setter should be defined". So, I went to hint and wrote the answer supplied into my code. But it still says, “Thermostat should be able to be instantiated”. I need help please!

Your code so far


// Only change code below this line
class Thermostat {
constructor(fahrenheit) {
  this._fahrenheit = fahrenheit;
}
get temperature() {
  return (5/9) * (this.fahrenheit - 32);
}  
set temperature(celsius) {
this.fahrenheit = (celsius * 9.0) / 5 + 32;
}
}
// Only change code above this line

const thermos = new Thermostat(76); // Setting in Fahrenheit scale
let temp = thermos.temperature; // 24.44 in Celsius
thermos.temperature = 26;
temp = thermos.temperature; // 26 in Celsius

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:74.0) Gecko/20100101 Firefox/74.0.

Challenge: Use getters and setters to Control Access to an Object

Link to the challenge:

Hello!

I tested the proposed solution and it works. Your code, however, has a small typo (read the added comments):

class Thermostat {
  constructor(fahrenheit) {
    // You have two options:
    // 1. Remove the underscore from this._farenheit
    // 2. Add the underscore to every other this.farenheit
    this._fahrenheit = fahrenheit;
  }
  get temperature() {
    return (5 / 9) * (this.fahrenheit - 32);
  }
  set temperature(celsius) {
    this.fahrenheit = (celsius * 9.0) / 5 + 32;
  }
}

Finally, welcome to the forum :grin:! I hope you learn a lot,

Happy Coding!

Thank you so much! It totally worked! I’m glad to be here :+1:

1 Like