To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

Metoda Object.getOwnPropertyDescriptor() zwraca deskryptor definiujący stan właściwości (właściwość musi być zdefiniowana bezpośrednio na obiekcie, ponieważ metoda nie sprawdza właściwości w łańcuchu prototypów obiektu) dla podanego obiektu.

Składnia

Object.getOwnPropertyDescriptor(obj, prop)

Argumenty

obj
Obiekt, w którym będzie poszukiwana właściwość.
prop
Nazwa właściwości, dla której będzie pobrany deskryptor.

Wartość zwracana

Jeżeli obiekt posiada podaną właściwość, wówczas zostanie zwrócony jej deskryptor, w przeciwnym razie zostanie zwrócony undefined.

Opis

Metoda ta pozwala na dokładne zbadanie stanu właściwości. W rzeczywistości właściwość obiektu w JavaScript to nie tylko jej nazwa oraz wartość ale również odpowiadający jej deskryptor. Więcej informacji o atrybutach deskryptora można znaleźć w Object.defineProperty().

Deskryptor właściwości jest obiektem zawierającym poniższe atrybuty:

value
Wartość związana z odpowiadającą właściwością (tylko dla deskryptorów danych).
writable
Jeżeli true odpowiadająca wartość właściwości może być zmieniona (tylko dla deskryptorów danych).
get
Funkcja, która zwraca getter dla odpowiadającej właściwości lub undefined jeżeli getter nie występuje (tylko dla deskryptorów dostępowych).
set
Funkcja, która zwraca setter dla odpowiadającej właściwości lub undefined jeżeli setter nie występuje (tylko dla deskryptorów dostępowych).
configurable
Jeżeli true odpowiadająca wartość właściwości może być zmieniona (również ich rodzaj - z właściwości danych na właściwość funkcji dostępowych, i odwrotnie) oraz usunięta z odopowiadającego obiektu.
enumerable
Jeżeli true odpowiadająca wartość właściwości będzie dostępna podczas iteracji po właściwosciach odpowiadającego obiektu.

Przykłady

var o, d;

o = { get foo() { return 17; } };
d = Object.getOwnPropertyDescriptor(o, 'foo');
// d is { configurable: true, enumerable: true, get: /*the getter function*/, set: undefined }

o = { bar: 42 };
d = Object.getOwnPropertyDescriptor(o, 'bar');
// d is { configurable: true, enumerable: true, value: 42, writable: true }

o = {};
Object.defineProperty(o, 'baz', { value: 8675309, writable: false, enumerable: false });
d = Object.getOwnPropertyDescriptor(o, 'baz');
// d is { value: 8675309, writable: false, enumerable: false, configurable: false }

Uwagi

W ES5, jeżeli pierwszy argument dla podanej metody nie jest obiektem (jest typem prostym), wówczas zostanie wyrzucony wyjątek TypeError. Natomiast w ES2015, na typie prymitywnym najpierw zostanie wykonana koercja do obiektu.

Object.getOwnPropertyDescriptor('foo', 0);
// TypeError: "foo" is not an object  // ES5 code

Object.getOwnPropertyDescriptor('foo', 0);
// {configurable:false, enumerable:true, value:"f", writable:false}  // ES2015 code

Specyfikacje

Specification Status Comment
ECMAScript 5.1 (ECMA-262)
The definition of 'Object.getOwnPropertyDescriptor' in that specification.
Standard Initial definition. Implemented in JavaScript 1.8.5.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Object.getOwnPropertyDescriptor' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Object.getOwnPropertyDescriptor' in that specification.
Draft  

Kompatybilność przeglądarkowa

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support 5Edge Full support YesFirefox Full support 4IE Full support 8Opera Full support 12Safari Full support 5WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

 

Zobacz również

Autorzy i etykiety dokumentu

Ostatnia aktualizacja: fscholz,