Junior
Como chamar um método na cadeia de chamadas?
sobes.tech IA
Resposta da IA
Usando um ponto (.) entre chamadas de métodos ou propriedades de um objeto. Cada chamada de método ou acesso à propriedade devolve um objeto, sobre o qual pode então chamar o próximo método ou aceder à próxima propriedade.
// Exemplo de cadeia de chamadas de métodos
" abc ".trim().toUpperCase().split(" ");
/*
1. " abc ".trim() -> "abc"
2. "abc".toUpperCase() -> "ABC"
3. "ABC".split(" ") -> ["ABC"]
*/
// Exemplo de cadeia com acesso à propriedade
const user = {
address: {
city: "Moscovo"
}
};
user.address.city; // "Moscovo"
// Exemplo usando encadeamento opcional (?.)
// Permite aceder de forma segura às propriedades de objetos aninhados,
// evitando erros se alguma das propriedades intermédias for null ou undefined.
user.address?.street; // undefined, sem erro
const anotherUser = {};
anotherUser.address?.city; // undefined, sem erro
Ao projetar os seus próprios métodos para suportar encadeamento, cada método deve devolver this (uma referência ao objeto atual), exceto o último método na cadeia, que pode devolver o resultado final.
class Builder {
constructor() {
this.value = "";
}
addText(text) {
this.value += text;
return this; // Devolve this
}
addNumber(number) {
this.value += number;
return this; // Devolve this
}
build() {
return this.value; // Devolve o resultado final
}
}
const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"