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

Metoda Object.preventExtensions() w JavaScript pozwala na zapobieganie dodawaniu nowych właściwości do obiektu. Jest to jedna z metod pozwalających na kontrolę nad modyfikowalnością obiektów w JavaScript, obok Object.seal() i Object.freeze(). Użycie Object.preventExtensions() sprawia, że nie można dodać nowych właściwości do danego obiektu, jednakże możliwe jest nadal modyfikowanie istniejących właściwości.

Przykład użycia Object.preventExtensions()

Poniższy przykład pokazuje, jak użyć Object.preventExtensions() w połączeniu z prostym HTML, aby zobrazować jego działanie w praktyce.

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Object.preventExtensions w JavaScript</title>
</head>
<body>
    <script>
        // Obiekt opisujący komputer
        let computer = {
            brand: "Dell",
            model: "XPS",
            year: 2020
        };

        // Zastosowanie Object.preventExtensions() do obiektu
        Object.preventExtensions(computer);

        // Próba dodania nowej właściwości
        computer.processor = "Intel i7";

        // Sprawdzenie, czy dodanie właściwości się powiodło
        if (computer.processor === undefined) {
            console.log("Nie można dodać nowej właściwości do obiektu.");
        } else {
            console.log("Dodano nową właściwość do obiektu.");
        }

        // Modyfikacja istniejącej właściwości
        computer.year = 2021;
        console.log("Zaktualizowany rok produkcji: ", 
                          computer.year);

        // Sprawdzenie, czy obiekt jest rozszerzalny
        if (!Object.isExtensible(computer)) {
            console.log("Obiekt nie jest rozszerzalny.");
        }
    </script>
</body>
</html>

W tym przykładzie:

  1. Tworzymy obiekt computer z trzema właściwościami: brand, model, i year.
  2. Stosujemy Object.preventExtensions(computer) do obiektu, aby zapobiec dodawaniu nowych właściwości.
  3. Próbujemy dodać nową właściwość processor do obiektu. Operacja ta nie powiedzie się, ponieważ zastosowano Object.preventExtensions.
  4. Modyfikujemy istniejącą właściwość year, co jest możliwe nawet po zastosowaniu Object.preventExtensions.
  5. Sprawdzamy, czy obiekt jest rozszerzalny, używając Object.isExtensible(computer), i potwierdzamy, że nie jest.

Podsumowanie

Metoda Object.preventExtensions() jest przydatnym narzędziem w JavaScript, które pozwala na zwiększenie kontroli nad obiektami przez zapobieganie dodawaniu do nich nowych właściwości. Jest to szczególnie użyteczne w sytuacjach, gdy chcemy zabezpieczyć nasze obiekty przed niechcianymi modyfikacjami, zachowując przy tym możliwość zmiany wartości istniejących właściwości. Dzięki tej metodzie, programiści mogą tworzyć bardziej przewidywalny i bezpieczny kod, ograniczając możliwość przypadkowych błędów wynikających z modyfikacji obiektów.

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