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
computerz 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ść
processordo 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.

