Jak poprawnie korzystać z getterów i setterów w JavaScript?

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.

Scroll to Top