Metodas „JavaScript Object.defineProperty ()“ prideda arba modifikuoja esamą objekto ypatybę ir grąžina objektą.
defineProperty()Metodo sintaksė yra tokia:
Object.defineProperty(obj, prop, descriptor)
defineProperty()Metodas, būdamas statinis metodas, vadinamas naudojant Objectklasės pavadinimą.
defineProperty () parametrai
defineProperty()Metodas trunka:
- obj - objektas, kuriame apibrėžiama nuosavybė.
- rekvizitas -
Symbolapibrėžtino ar modifikuojamo turto pavadinimas . - deskriptorius - apibrėžto ar modifikuojamo turto aprašas.
Objektuose esantys nuosavybės aprašai yra dviejų tipų: duomenų aprašai ir prieigų aprašai. Jie gali turėti šias pasirinktines savybes.
configurableenumerable
Duomenų aprašai taip pat gali turėti:
valuewritable
Prieigos aprašai taip pat gali turėti:
getset
Grąžinimo vertė iš defineProperty ()
- Grąžina objektą, kuris buvo perduotas funkcijai.
Pastaba:
- Pagal numatytuosius nustatymus pridėtos vertės
Object.defineProperty()yra nekintamos ir nesuskaičiuojamos. - Jeigu deskriptorius turi nei
value,writable,getirsetraktus, tai yra traktuojama kaip duomenų deskriptorius. Jei deskriptorius turi abuvalueirwritableir,getarbasetraktus, išmetama išimtis.
Pavyzdys: duomenų objekto ypatybės pridėjimas
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
Rezultatas
788 Vertės nustatymas … Vertės gavimas … 6969
Negalime maišyti tiek duomenų, tiek prieigos savininkų aprašų, nes tai sukeltų klaidą.
Norint modifikuoti ypatybę, objekto writableypatybė turi būti true, kitaip ji nepakeis ir nepadarys klaidos griežtu režimu.
enumerableAtributas „ ypatybė“ apibrėžia, ar turtą parenka, Object.assign()ar paskleidžia operatorius.
Į configurableĮgūdis kontrolė tuo pačiu metu, ar turtas gali būti išbrauktas iš objekto ir ar jos atributus (išskyrus valueir writable) gali būti pakeistas.
Rekomenduojamas skaitymas: „ Javascript Object defineProperties ()“








