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ściUndefined
- 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