Przejdź do treści

Object

getOwnPropertyDescriptor

(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.

Internet Explorer 8 poza trybem Quirks częściowo obsługuję tę funkcję - tylko w przypadku modelu DOM, czyli nie można jej używać dla obiektów stworzonych przez użytkownika. Ponadto nie działają atrybuty deskryptora: enumerable ani configurable.

Przykład:

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