Wzorzec łańcuchowego wywoływania metod
Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 16 z 56.
Łańcuchowe wywoływanie metod to wzorzec programowania, który pozwala wywoływać wiele metod na tym samym obiekcie w jednym instrukcji. Każda metoda zwraca sam obiekt (this), dzięki czemu możesz wywołać kolejną metodę w tym samym wierszu.
Utwórz prosty obiekt licznika:
const counter = {
count: 0,
increment() {
this.count++;
return this;
},
decrement() {
this.count--;
return this;
},
getValue() {
return this.count;
}
};Teraz możesz łączyć metody:
// Połącz kilka operacji w łańcuch
counter.increment().increment().decrement();
// Licznik ma teraz wartość 1
console.log(counter.getValue()); // Wynik: 1Kluczem do łączenia metod w łańcuch jest zwracanie this z każdej metody, którą chcesz móc łączyć w łańcuch.
Wyzwanie
Otrzymujesz obiekt kalkulatora, który ma już metody add() i subtract(). Twoim zadaniem jest dodać metody multiply i divide, które zwracają this, aby umożliwić łańcuchowe wywoływanie metod.
Spróbuj swoich sił
import { calculator } from './calculator.js';
// Kod testowy - nie modyfikuj
const result1 = calculator.add(10).multiply(2).getValue();
console.log(result1); // Powinno wypisać 20
// Zresetuj przed drugim testem
calculator.value = 0;
const result2 = calculator.add(20).divide(4).subtract(1).getValue();
console.log(result2); // Powinno wypisać 4Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Obiekty i słowo kluczowe this
Szybka powtórka: obiektyDodawanie metod do obiektówZrozumienie słowa kluczowego thisFunkcje konstruktoraSłowo kluczowe newWyzwanie podsumowujące7Dziedziczenie i słowo kluczowe extends
DziedziczenieRelacja „jest rodzajem”Słowo kluczowe extendsMetoda super()Dziedziczenie właściwości i metodWyzwanie podsumowujące10Polimorfizm
Czym jest polimorfizm?Nadpisywanie odziedziczonych metodUżywanie superWyzwanie podsumowujące13Kompozycja a dziedziczenie
Relacja „ma” a relacja „jest”Ograniczenia głębokiego dziedziczeniaTworzenie obiektów2Organizowanie kodu
Czym są moduły?Eksportowanie za pomocą exportImportowanie za pomocą importEksporty domyślne a nazwane5Enkapsulacja i dostęp
EnkapsulacjaPubliczne i prywatne pola klasyMetody prywatneWyzwanie podsumowujące8Organizowanie kodu OOP
Organizowanie klas w moduły11Projekt: Renderer kształtów
Konfiguracja: klasa Shape i eksportDziedziczenie klasy CircleNadpisywanie i metoda obliczania polaStatyczny licznik kształtów14System zarządzania biblioteką
Projektowanie bibliotekiKlasa Book z kompozycjąWalidacja autora książki9Metody i właściwości statyczne
Poziom klasy a poziom instancjiWłaściwości statyczneStatyczne metody pomocniczeWyzwanie podsumowującePoćwicz samodzielnie: Kompilator JavaScript online