A JavaScript Object.defineProperty () metódus hozzáadja vagy módosítja az objektum meglévő tulajdonságát, és visszaadja az objektumot.
A defineProperty()módszer szintaxisa :
Object.defineProperty(obj, prop, descriptor)
A defineProperty()módszer statikus módszerként az Objectosztály nevét használja.
defineProperty () Paraméterek
A defineProperty()módszer:
- obj - A tulajdonság meghatározása.
- prop - A
Symbolmeghatározandó vagy módosítandó tulajdonság neve vagy neve . - leíró - A definiálandó vagy módosított tulajdonság leírója.
Az objektumokban jelen lévő tulajdonságleírók kétféle típusúak: adatleírók és hozzáférési leírók. A következő opcionális tulajdonságokkal rendelkezhetnek.
configurableenumerable
Az adatleíróknak lehetnek:
valuewritable
A hozzáférési leíróknak a következők is lehetnek:
getset
Visszatérési érték a defineProperty () értékből
- Visszaadja a függvénynek átadott objektumot.
Jegyzet:
- Alapértelmezés szerint a használatával hozzáadott értékek
Object.defineProperty()változhatatlanok és nem számolhatók. - Ha egy leíró egyikkel sem rendelkezik
value,writable,getéssetgombokat, úgy kell tekinteni, mint az adatok leíró. Ha egy leíró egyarántvaluevagywritableésgetvagysetkulcsok, kivételt dob.
Példa: Adattulajdonság hozzáadása az objektumhoz
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
Kimenet
788 Érték beállítása … Érték megszerzése … 6969
Nem keverhetjük össze az adatokat és az accessor tulajdonságleírókat, mivel ez hibát okozna.
Tulajdonság módosításához az objektum writabletulajdonságának kell lennie true, különben nem módosítja és szigorú módban hibát dob.
A enumerabletulajdonság attribútum határozza meg, hogy az ingatlant az Object.assign()operátor választotta-e vagy terjesztette.
Az configurableattribútum egyidejűleg szabályozza, hogy a tulajdonság törölhető-e az objektumból, és hogy az attribútumai ( valueés nem writable) megváltoztathatók-e.
Ajánlott olvasmány: Javascript Object defineProperties ()








