Meetod JavaScript Object.defineProperty () lisab või muudab objektil olemasolevat atribuuti ja tagastab objekti.
Meetodi süntaks defineProperty()on:
Object.defineProperty(obj, prop, descriptor)
defineProperty()Meetod, olles staatiline meetod, nimetatakse kasutades Objectklassi nimi.
defineProperty () parameetrid
defineProperty()Meetod võtab:
- obj - objekt, millel omadus määratleda.
- prop -
Symbolmääratletava või muudetava omaduse nimi või omadus. - deskriptor - määratletava või muudetava atribuudi kirjeldaja.
Objektides esinevad omaduste kirjeldajad on kahte tüüpi: andmekirjeldused ja juurdepääsukirjeldused. Neil võivad olla järgmised valikulised omadused.
configurableenumerable
Andmekirjeldustel võib olla ka:
valuewritable
Juurdepääsu kirjeldajatel võib olla ka:
getset
Tagastage väärtus defineProperty ()
- Tagastab objekti, mis edastati funktsioonile.
Märge:
- Vaikimisi
Object.defineProperty()on kasutamisel lisatud väärtused muutumatud ega loendatavad. - Kui deskriptor on kumbki
value,writable,getjasetvõtmeid, käsitatakse andmete deskriptor. Kui deskriptoril on mõlemadvaluejawritablejagetvõisetklahvid, visatakse erand.
Näide: andmete atribuudi lisamine objektile
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
Väljund
788 Väärtuse seadmine… Väärtuse saamine … 6969
Me ei saa segada nii andmeid kui ka ligipääsu atribuutide kirjeldajaid, kuna see võib põhjustada vea.
Atribuudi muutmiseks peab olema objekti writableomadus true, muidu see ei muuda ega viska vigu ranges režiimis.
enumerableOmandi atribuut määratleb, kas vara korjatakse Object.assign()või levikut operaator.
configurableAtribuut kontrolli samal ajal, kas vara saab kustutada objekti ja kas selle atribuudid (va valueja writable) saab muuta.
Soovitatav lugemine: Javascripti objekti defineProperties ()








