Метода ЈаваСцрипт Објецт.дефинеПроперти () додаје или модификује постојеће својство објекта и враћа га.
Синтакса defineProperty()методе је:
Object.defineProperty(obj, prop, descriptor)
defineProperty()Метода, као статичког метода, зове се користи Objectназив класе.
дефинеПроперти () Параметри
defineProperty()Метод узима у:
- обј - објекат на коме се дефинише својство.
- проп - назив или
Symbolсвојство које треба дефинисати или изменити. - дескриптор - дескриптор својства које се дефинише или модификује.
Дескриптори својстава присутни у објектима су два типа: дескриптори података и дескриптори приступника. Могу имати следећа опциона својства.
configurableenumerable
Дескриптори података такође могу имати:
valuewritable
Дескриптори приступа могу такође имати:
getset
Врати вредност из дефинеПроперти ()
- Враћа објект који је прослеђен функцији.
Белешка:
- Подразумевано су вредности додате помоћу
Object.defineProperty()непроменљиве и небројиве. - Ако је дескриптор нема ни на
value,writable,getиsetтастера, се третира као дескриптора података. Ако дескриптор има кључевеvalueилиwritableиgetилиset, појављује се изузетак.
Пример: Додавање својства података објекту
let obj = (); // with a data property descriptor Object.defineProperty(obj, "property1", ( value: 788, writable: true, enumerable: true, configurable: true, )); console.log(obj.property1); // 788 // with an accessor property descriptor Object.defineProperty(obj, "property2", ( get() ( console.log("Getting Value… "); return val; ), set(newVal) ( console.log("Setting Value… "); val = newVal; ), enumerable: true, configurable: true, )); obj.property2 = 6969; // Setting Value… console.log(obj.property2); // 6969
Оутпут
788 Постављање вредности … Добијање вредности … 6969
Не можемо мешати податке и дескрипторе својстава приступника јер би то створило грешку.
Да би се модификовало својство, својство објекта writableмора бити true, иначе се неће мењати и бацати грешку у строгом режиму.
enumerableАтрибут особина дефинише да ли је имовина бере Object.assign()или ширења оператера.
У configurableКонтроле атрибута истовремено ли имовина може бити избрисана из објекта и да њеним атрибутима (осим valueи writable) се могу мењати.
Препоручена литература: Јавасцрипт објекат дефинеПропертиес ()








