Przejdź do treści

Manipulacja obiektami w JavaScript - Object - JS

Deskryptor właściwości obiektu w JavaScript - getOwnPropertyDescriptor

Jak pobrać deskryptor właściwości podanej instancji obiektu?

(interpretuje: Internet Explorer 9, Firefox 4, Opera 12, Chrome oraz częściowo Internet Explorer 8)

Object.getOwnPropertyDescriptor(O, P)
Parametry:
O - obiekt, którego deskryptor właściwości ma zostać pobrany
String P - nazwa właściwości obiektu O
Wartość:
Object - deskryptor właściwości
Undefined - obiekt nie posiada podanej właściwości
Wyjątki:
TypeError - wartość O nie jest obiektem

Zwraca tzw. deskryptor właściwości, który pozwala sterować dostępem do podanej właściwości obiektu [zobacz: Object.defineProperty]. Nie uwzględnia właściwości przejętych z prototypu, a jedynie bezpośrednio przypisane do obiektu.

Przykład Object.getOwnPropertyDescriptor

Object.getOwnPropertyDescriptor({p: 1}, "p"); // {value: 1, writable: true, enumerable: true, configurable: true}
Object.getOwnPropertyDescriptor({}, "p");     // undefined
 
var Cls = function () {
    this.p = 1;
};
Cls.prototype.m = function () {};
var obj = new Cls();
Object.getOwnPropertyDescriptor(obj, "p");    // {value: 1, writable: true, enumerable: true, configurable: true}
Object.getOwnPropertyDescriptor(obj, "m");    // undefined
 
Object.getOwnPropertyDescriptor(true, "p");   // TypeError
Object.getOwnPropertyDescriptor(1, "p");      // TypeError
Object.getOwnPropertyDescriptor("test", "p"); // TypeError
Object.getOwnPropertyDescriptor(null, "p");   // TypeError

Komentarze

Zobacz więcej komentarzy

Facebook