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

Metoda Object.getOwnPropertyNames() w JavaScript jest potężnym narzędziem, które pozwala na pobranie tablicy zawierającej nazwy wszystkich własnych właściwości (zarówno wyliczalnych, jak i niewyliczalnych) danego obiektu. Jest to szczególnie przydatne w przypadkach, gdy potrzebujemy dokładnej listy wszystkich kluczy obiektu, włącznie z tymi, które nie są dostępne poprzez standardową iterację za pomocą pętli for...in czy metody Object.keys().

Przykład użycia Object.getOwnPropertyNames()

Załóżmy, że chcemy zbadać i wyświetlić wszystkie własne nazwy właściwości z obiektu w naszej aplikacji webowej. Poniżej znajduje się przykład kodu JavaScript w połączeniu z prostym kodem HTML, który demonstruje, jak można wykorzystać Object.getOwnPropertyNames() do osiągnięcia tego celu.

Kod HTML i JavaScript
<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Wykorzystanie Object.getOwnPropertyNames() w JavaScript</title>
</head>
<body>
    <h3>Właściwości obiektu:</h3>
    <pre id="properties"></pre>

    <script>
        // Obiekt opisujący samochód
        let car = {
            brand: "Ford",
            model: "Mustang",
            year: 1969,
            get fullName() {
                return this.brand + ' ' + this.model;
            }
        };

        // Dodanie niewyliczalnej właściwości
        Object.defineProperty(car, 'engine', {
            value: 'V8',
            enumerable: false,
        });

        // Użycie Object.getOwnPropertyNames() do pobrania nazw właściwości
        let propNames = Object.getOwnPropertyNames(car);

        // Wyświetlanie nazw właściwości
        document.getElementById('properties').textContent = 
            'Własne nazwy właściwości obiektu car: ' + propNames.join(', ');
    </script>
</body>
</html>

W powyższym przykładzie zdefiniowaliśmy obiekt car z kilkoma właściwościami, w tym jedną niewyliczalną właściwością engine oraz getterem fullName, który również jest traktowany jako właściwość. Następnie, za pomocą Object.getOwnPropertyNames(car), pobieramy wszystkie nazwy właściwości (włącznie z niewyliczalnymi) i wyświetlamy je w elemencie <pre>.

Podsumowanie

Metoda Object.getOwnPropertyNames() jest niezwykle użyteczna, gdy chcemy uzyskać pełną listę nazw właściwości obiektu, włączając w to te niewyliczalne, które są pomijane przez bardziej tradycyjne metody iteracji. Dzięki temu mamy możliwość pełnego introspekowania obiektów w JavaScript, co jest przydatne w debugowaniu, serializacji czy przy implementacji mechanizmów refleksji. Ta metoda jest jednym z wielu narzędzi, które JavaScript oferuje do efektywnego i głębokiego zarządzania obiektami.

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