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.");'
```