Jak korzystać z deskryptorów w JavaScript

Deskryptory właściwości w JavaScript umożliwiają szczegółową kontrolę nad zachowaniem właściwości obiektu. Dzięki nim możemy dokładnie określić, czy właściwość jest zapisywalna, konfigurowalna, wyliczalna, a także definiować getter i setter dla niej. W tej lekcji omówimy, jak można korzystać z deskryptorów właściwości, by lepiej zarządzać obiektami w JavaScript.

Przykład użycia deskryptorów właściwości

Zacznijmy od prostego przykładu, w którym zdefiniujemy obiekt person z właściwością name, używając deskryptora właściwości, aby uczynić ją tylko do odczytu.

// Definiowanie obiektu z deskryptorem właściwości
const person = {};

Object.defineProperty(person, 'name', {
    value: 'Olek',
    writable: false, // Nie można zmienić wartości
    configurable: false, // Nie można usunąć właściwości 
                         // ani zmienić jej deskryptora
    enumerable: true // Właściwość będzie wyświetlana przy iteracji
});

console.log(person.name); // Wyświetla 'Olek'

Przykład zaawansowany: Gettery i Settery

Deskryptory pozwalają również na definiowanie getterów i setterów, co jest przydatne, gdy chcemy dodać logikę wykonywaną podczas odczytywania lub modyfikacji właściwości.

const person = {
    firstName: 'Jan',
    lastName: 'Kowalski'
};

Object.defineProperty(person, 'fullName', {
    get() {
        return `${this.firstName} ${this.lastName}`;
    },
    set(value) {
        [this.firstName, this.lastName] = value.split(' ');
    },
    enumerable: true,
    configurable: true
});

console.log(person.fullName); // 'Jan Kowalski'
person.fullName = 'Adam Nowak';
console.log(person.fullName); // 'Adam Nowak'

Podsumowanie

Deskryptory właściwości w JavaScript oferują potężne narzędzie do zarządzania obiektami, pozwalając na precyzyjne kontrolowanie zachowania ich właściwości. Dzięki możliwości określenia, czy właściwość jest zapisywalna, wyliczalna, konfigurowalna, a także definiowaniu getterów i setterów, możemy tworzyć bardziej elastyczne i bezpieczne aplikacje. Użycie deskryptorów wprowadza dodatkową warstwę abstrakcji, która może znacznie zwiększyć czytelność i utrzymanie kodu.

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