livro escolar {Observe a sintaxe que estamos usando para invocar o getter e setter - como se eles não fossem mesmo funções. Getters e setters são importantes porque ocultam detalhes internos de implementação.
construtor (autor) {
this._author = autor;
}
// getter
obter escritor () {
devolve this._author;
}
// setter
set writer (updatedAuthor) {
this._author = updatedAuthor;
}
}
const lol = novo livro ('anônimo');
console.log (lol.writer); // anônimo
lol.writer = 'wut';
console.log (lol.writer); // wut
class para criar uma classe Thermostat. O construtor aceita a temperatura Fahrenheit. Agora crie getter e setter na classe, para obter a temperatura na escala Celsius. Lembre-se que C = 5/9 * (F - 32) e F = C * 9.0 / 5 + 32 , onde F é o valor da temperatura na escala Fahrenheit, e C é o valor da mesma temperatura na escala Celsius. Para implementar isso, você estaria acompanhando a temperatura dentro da classe em uma escala - Fahrenheit ou Celsius. Este é o poder de getter ou setter - você está criando uma API para outro usuário, que obteria o resultado correto, não importando qual deles você rastreie. Em outras palavras, você está abstraindo os detalhes da implementação do consumidor. Thermostat deve ser uma class com um método constructor definido.
testString: 'assert(typeof Thermostat === "function" && typeof Thermostat.constructor === "function","Thermostat should be a class with a defined constructor method.");'
- text: palavra-chave class foi usada.
testString: 'getUserInput => assert(getUserInput("index").match(/class/g),"class keyword was used.");'
- text: Thermostat pode ser instanciado.
testString: 'assert(() => {const t = new Thermostat(32); return typeof t === "object" && t.temperature === 0;}, "Thermostat can be instantiated.");'
```