Junior
Cum se apelează o metodă în lanțul de apeluri?
sobes.tech AI
Răspuns de la AI
Utilizați punctul (.) între apelurile de metode sau proprietățile unui obiect. Fiecare apel de metodă sau acces la proprietate returnează un obiect, pe care apoi îl puteți apela următoarea metodă sau accesa următoarea proprietate.
// Exemplu de lanț de apeluri de metode
" abc ".trim().toUpperCase().split(" ");
/*
1. " abc ".trim() -> "abc"
2. "abc".toUpperCase() -> "ABC"
3. "ABC".split(" ") -> ["ABC"]
*/
// Exemplu de lanț cu acces la proprietate
const user = {
address: {
city: "Moscova"
}
};
user.address.city; // "Moscova"
// Exemplu cu utilizarea chaining-ului opțional (?.)
// Permite accesul sigur la proprietățile obiectelor imbricate,
// prevenind erorile dacă una dintre proprietățile intermediare este null sau undefined.
user.address?.street; // undefined, fără eroare
const anotherUser = {};
anotherUser.address?.city; // undefined, fără eroare
Proiectând propriile metode pentru a suporta chaining, fiecare metodă trebuie să returneze this (o referință la obiectul curent), cu excepția ultimei metode din lanț, care poate returna rezultatul final.
class Builder {
constructor() {
this.value = "";
}
addText(text) {
this.value += text;
return this; // Returnează this
}
addNumber(number) {
this.value += number;
return this; // Returnează this
}
build() {
return this.value; // Returnează rezultatul final
}
}
const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"