Javascripti Object.defineProperty ()

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.

  • configurable
  • enumerable

Andmekirjeldustel võib olla ka:

  • value
  • writable

Juurdepääsu kirjeldajatel võib olla ka:

  • get
  • set

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, getja setvõtmeid, käsitatakse andmete deskriptor. Kui deskriptoril on mõlemad valueja writableja getvõi setklahvid, 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 ()

Huvitavad Artiklid...