class Book {Notice the syntax we are using to invoke the getter and setter - as if they are not even functions. Getters and setters are important, because they hide internal implementation details. Note: It is a convention to precede the name of a private variable with an underscore (
constructor(author) {
this._author = author;
}
// getter
get writer() {
return this._author;
}
// setter
set writer(updatedAuthor) {
this._author = updatedAuthor;
}
}
const lol = new Book('anonymous');
console.log(lol.writer); // anonymous
lol.writer = 'wut';
console.log(lol.writer); // wut
_
). The practice itself does not make a variable private.
class
keyword to create a Thermostat class. The constructor accepts Fahrenheit temperature.
Now create getter
and setter
in the class, to obtain the temperature in Celsius scale.
Remember that C = 5/9 * (F - 32)
and F = C * 9.0 / 5 + 32
, where F is the value of temperature in Fahrenheit scale, and C is the value of the same temperature in Celsius scale
Note:Thermostat
should be a class
with a defined constructor
method.
testString: assert(typeof Thermostat === 'function' && typeof Thermostat.constructor === 'function');
- text: class
keyword should be used.
testString: assert(code.match(/class/g));
- text: Thermostat
should be able to be instantiated.
testString: assert((() => {const t = new Thermostat(32);return typeof t === 'object' && t.temperature === 0;})());
```