Junior
Come chiamare un metodo in una catena di chiamate?
sobes.tech AI
Risposta dell'AI
Utilizzare un punto (.) tra le chiamate di metodi o le proprietà di un oggetto. Ogni chiamata di metodo o accesso a proprietà restituisce un oggetto, sul quale è possibile chiamare il metodo successivo o accedere alla proprietà successiva.
// Esempio di catena di chiamate di metodi
" abc ".trim().toUpperCase().split(" ");
/*
1. " abc ".trim() -> "abc"
2. "abc".toUpperCase() -> "ABC"
3. "ABC".split(" ") -> ["ABC"]
*/
// Esempio di catena con accesso a proprietà
const user = {
address: {
city: "Mosca"
}
};
user.address.city; // "Mosca"
// Esempio con utilizzo di chaining opzionale (?.)
// Permette di accedere in modo sicuro alle proprietà di oggetti annidati,
// prevenendo errori se una delle proprietà intermedie è null o undefined.
user.address?.street; // undefined, senza errore
const anotherUser = {};
anotherUser.address?.city; // undefined, senza errore
Progettando i propri metodi per supportare il chaining, ogni metodo dovrebbe restituire this (un riferimento all'oggetto corrente), tranne l'ultimo metodo nella catena, che può restituire il risultato finale.
class Builder {
constructor() {
this.value = "";
}
addText(text) {
this.value += text;
return this; // Restituisce this
}
addNumber(number) {
this.value += number;
return this; // Restituisce this
}
build() {
return this.value; // Restituisce il risultato finale
}
}
const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"