Gettery i settery to funkcje używane w programowaniu obiektowym do bezpiecznego dostępu i modyfikacji właściwości obiektu. W JavaScript, te metody umożliwiają kontrolę nad tym, jak wartości są pobierane i ustawiane, co może pomóc w zapewnieniu poprawności danych i w enkapsulacji.
Definiowanie getterów i setterów
Gettery i settery w JavaScript mogą być zdefiniowane wewnątrz literału obiektu lub za pomocą definicji klasy. Przyjrzyjmy się przykładowi użycia tych funkcji w kontekście klasy.
class Person {
    constructor(name, age) {
        this._name = name;
        this._age = age;
    }
    // Getter dla `name`
    get name() {
        return this._name;
    }
    // Setter dla `name`
    set name(newName) {
        this._name = newName;
    }
    // Getter dla `age`
    get age() {
        return this._age;
    }
    // Setter dla `age`
    set age(newAge) {
        if (newAge > 0) {
            this._age = newAge;
        } else {
            console.log("Wiek musi być większy od 0.");
        }
    }
}
W powyższym przykładzie, _name i _age to prywatne konwencjonalne właściwości, dla których zdefiniowano gettery i settery. Dzięki temu możemy kontrolować modyfikację i dostęp do tych właściwości.
Użycie getterów i setterów
        let person = new Person("Jan", 30);
        // Wyświetlanie imienia i wieku
        console.log(person.name); // Wykorzystanie gettera
        console.log(person.age); // Wykorzystanie gettera
        // Ustawianie nowego imienia i wieku
        person.name = "Anna"; // Wykorzystanie settera
        person.age = 25; // Wykorzystanie settera
        // Próba ustawienia niepoprawnego wieku
        person.age = -5; // Wywołuje komunikat o błędzie
        // Ponowne wyświetlenie zmienionych wartości
        console.log(person.name);
        console.log(person.age);Korzyści z używania getterów i setterów
- Walidacja danych: Gettery i settery umożliwiają walidację danych przed ich przypisaniem do właściwości obiektu.
- Enkapsulacja: Pomagają ukryć wewnętrzną implementację i eksponować tylko to, co niezbędne.
- Dodatkowa logika: Możliwość dodania dodatkowej logiki przy odczycie lub zapisie właściwości.
Podsumowanie
Gettery i settery w JavaScript są potężnymi narzędziami do kontrolowania dostępu i modyfikacji danych w obiektach. Pozwalają na walidację i enkapsulację danych, co przyczynia się do większej bezpieczeństwa i czytelności kodu. Poprawne ich stosowanie jest kluczowe w budowaniu solidnych i skalowalnych aplikacji.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.
