Junior
Jak odwołać się do metody w łańcuchu wywołań?
sobes.tech AI
Odpowiedź od AI
Używaj kropki (.) pomiędzy wywołaniami metod lub właściwościami obiektu. Każde wywołanie metody lub dostęp do właściwości zwraca obiekt, na którym można wywołać kolejne wywołanie lub uzyskać dostęp do następnej właściwości.
// Przykład łańcucha wywołań metod
" abc ".trim().toUpperCase().split(" ");
/*
1. " abc ".trim() -> "abc"
2. "abc".toUpperCase() -> "ABC"
3. "ABC".split(" ") -> ["ABC"]
*/
// Przykład łańcucha z dostępem do właściwości
const user = {
address: {
city: "Moskwa"
}
};
user.address.city; // "Moskwa"
// Przykład z użyciem opcjonalnego łańcuchowania (?.)
// Pozwala bezpiecznie uzyskać dostęp do właściwości zagnieżdżonych obiektów,
// zapobiegając błędom, jeśli jedna z właściwości pośrednich jest null lub undefined.
user.address?.street; // undefined, bez błędu
const anotherUser = {};
anotherUser.address?.city; // undefined, bez błędu
Projektując własne metody do obsługi łańcuchowania, każda metoda powinna zwracać this (odwołanie do bieżącego obiektu), z wyjątkiem ostatniej metody w łańcuchu, która może zwracać końcowy wynik.
class Builder {
constructor() {
this.value = "";
}
addText(text) {
this.value += text;
return this; // Zwraca this
}
addNumber(number) {
this.value += number;
return this; // Zwraca this
}
build() {
return this.value; // Zwraca końcowy wynik
}
}
const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"