учебник {Обратите внимание на синтаксис, который мы используем, чтобы вызвать getter и setter - как будто они не являются даже функциями. Геттеры и сеттеры важны, потому что они скрывают внутренние детали реализации.
конструктор (автор) {
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); // анонимный
lol.writer = 'wut';
console.log (lol.writer); // wut
class
для создания класса термостата. Конструктор принимает температуру Фаренгейта. Теперь создайте getter
и setter
в классе, чтобы получить температуру в масштабе Цельсия. Помните, что C = 5/9 * (F - 32)
и F = C * 9.0 / 5 + 32
, где F - значение температуры в шкале Фаренгейта, а C - значение той же температуры в шкале Цельсия. Примечание. Когда вы выполните это, вы будете отслеживать температуру внутри класса в одном масштабе - либо по Фаренгейту, либо по Цельсию. Это сила геттера или сеттера - вы создаете API для другого пользователя, который получит правильный результат, независимо от того, какой из них вы отслеживаете. Другими словами, вы абстрагируете детали реализации от потребителя.
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;})());
```