Do czego służy Object.seal() w JavaScript?

W JavaScript, Object.seal() jest metodą pozwalającą na zapieczętowanie obiektu. Oznacza to, że po jej zastosowaniu nie można dodawać nowych właściwości do obiektu, usunąć istniejących ani zmieniać ich konfiguracji, ale wciąż można modyfikować wartości istniejących właściwości. Metoda ta jest często używana w celu zwiększenia kontroli nad modyfikacjami obiektów, co może być szczególnie przydatne w fazie rozwoju oprogramowania, aby zapobiegać nieprzewidzianym zmianom w strukturze obiektów.

Przykład użycia Object.seal()

Poniżej znajduje się przykład kodu JavaScript wraz z prostym HTML, demonstrujący użycie Object.seal().

<!DOCTYPE html>
<html>
<head>
    <title>Przykład użycia Object.seal() w JavaScript</title>
</head>
<body>
    <script>
        // Obiekt opisujący samochód
        let car = {
            brand: "Ford",
            model: "Mustang",
            year: 1969
        };

        // Zapieczętowanie obiektu
        Object.seal(car);

        // Próba dodania nowej właściwości
        car.color = "red";
        console.log("Próba dodania właściwości color:", car.color); // undefined

        // Modyfikacja istniejącej właściwości
        car.year = 1970;
        console.log("Modyfikacja właściwości year:", car.year); 
        // 1970

        // Próba usunięcia właściwości
        delete car.model;
        console.log("Próba usunięcia właściwości model:", 
                     car.model); // Mustang

        // Sprawdzenie, czy obiekt jest zapieczętowany
        console.log("Czy obiekt car jest zapieczętowany?", 
                       Object.isSealed(car)); // true
    </script>
</body>
</html>

W tym przykładzie:

  • Najpierw tworzymy obiekt car z trzema właściwościami: brand, model i year.
  • Następnie używamy Object.seal(car) do zapieczętowania obiektu car.
  • Próbujemy dodać nową właściwość color do obiektu, co nie powiedzie się, ponieważ obiekt jest zapieczętowany.
  • Modyfikujemy wartość istniejącej właściwości year, co jest dozwolone.
  • Próbujemy usunąć właściwość model z obiektu, co również nie powiedzie się.
  • Na koniec sprawdzamy, czy obiekt car jest zapieczętowany, używając Object.isSealed(car), co zwróci true.

Podsumowanie

Object.seal() w JavaScript jest przydatnym narzędziem, które pozwala programistom na większą kontrolę nad obiektami poprzez zapobieganie dodawaniu lub usuwaniu właściwości. Choć nadal można modyfikować istniejące wartości właściwości, zapieczętowanie obiektu zapewnia pewien poziom niezmienności, który może być przydatny w wielu scenariuszach programistycznych. Ważne jest, aby pamiętać, że Object.seal() nie robi obiektu całkowicie niezmiennym, ponieważ wciąż dozwolone jest modyfikowanie wartości istniejących właściwości.

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