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:
- Tworzymy obiekt
computer
z trzema właściwościami:brand
,model
, iyear
. - Stosujemy
Object.preventExtensions(computer)
do obiektu, aby zapobiec dodawaniu nowych właściwości. - Próbujemy dodać nową właściwość
processor
do obiektu. Operacja ta nie powiedzie się, ponieważ zastosowanoObject.preventExtensions
. - Modyfikujemy istniejącą właściwość
year
, co jest możliwe nawet po zastosowaniuObject.preventExtensions
. - 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.