Właściwości obliczane
Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 44 z 56.
Właściwości obliczane to akcesory pobierające, które obliczają i zwracają wartość, zamiast po prostu zwracać przechowywane dane. Wyglądają jak zwykłe właściwości, ale obliczają swoją wartość na bieżąco.
Przyjrzyjmy się przykładowi. Mamy obiekt ze zwykłą właściwością:
const circle = {
radius: 5
};Teraz dodamy właściwość obliczaną za pomocą gettera:
const circle = {
radius: 5,
get diameter() {
return this.radius * 2;
}
};Tak uzyskujemy dostęp do obliczanej właściwości:
console.log(circle.diameter); // Wyświetla: 10Jeśli zaktualizujemy promień, średnica również zostanie automatycznie zaktualizowana:
circle.radius = 10;
console.log(circle.diameter); // Wyświetla: 20Właściwości obliczane są przydatne, gdy wartość właściwości zależy od innych właściwości lub wymaga obliczenia.
Wyzwanie
Dana jest klasa Rectangle z właściwościami width i height. Twoim zadaniem jest dodanie właściwości obliczanych dla pola powierzchni i obwodu.
- Właściwość obliczana
<strong>area</strong>— zwraca width × height - Właściwość obliczana
<strong>perimeter</strong>— zwraca 2 × (width + height)
Spróbuj swoich sił
import { Rectangle } from './rectangle.js';
// Kod testowy - nie modyfikuj
const rect = new Rectangle(5, 10);
console.log(`Area: ${rect.area}`); // Powinno wypisać "Area: 50"
console.log(`Perimeter: ${rect.perimeter}`); // Powinno wypisać "Perimeter: 30"Ta 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ące12Gettery i settery
Słowa kluczowe get i setWłaściwości obliczaneWalidacja i efekty uboczneWyzwanie podsumowującePoćwicz samodzielnie: Kompilator JavaScript online