Metode JavaScript Object.defineProperty () pievieno vai pārveido objektā esošo īpašumu un atgriež objektu.
Metodes sintakse defineProperty()ir šāda:
Object.defineProperty(obj, prop, descriptor)
defineProperty()Metodi, kas ir statiska metode, sauc izmantojot Objectklases nosaukumu.
defineProperty () parametri
defineProperty()Metode ņem in:
- obj - objekts, uz kura definēt īpašumu.
- prop -
Symboldefinējamā vai maināmā īpašuma nosaukums vai īpašums. - deskriptors - definējamā vai modificētā rekvizīta apraksts.
Objektos esošie īpašību deskriptori ir divu veidu: datu deskriptori un piekļuves deskriptori. Viņiem var būt šādas izvēles īpašības.
configurableenumerable
Datu aprakstiem var būt arī:
valuewritable
Piekļuves aprakstiem var būt arī:
getset
Atgriezt vērtību no defineProperty ()
- Atgriež objektu, kas tika nodots funkcijai.
Piezīme:
- Pēc noklusējuma vērtības, kas pievienotas, izmantojot,
Object.defineProperty()ir nemainīgas un nav skaitāmas. - Ja deskriptors nav neviena
value,writable,getunsetatslēgas, tas tiek uzskatīts par datu deskriptoru. Ja deskriptoram ir abasvaluevaiwritableun ungetvaisetatslēgas, tiek izmests izņēmums.
Piemērs: Datu rekvizīta pievienošana objektam
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
Rezultāts
788 Vērtības iestatīšana … Vērtības iegūšana … 6969
Mēs nevaram sajaukt gan datus, gan piekļuves rekvizītus, jo tas radītu kļūdu.
Lai modificētu rekvizītu, objekta writablerekvizītam ir jābūt true, pretējā gadījumā tas nemainīs un neizvirzīs kļūdas stingrā režīmā.
enumerableĪpašums atribūts nosaka, vai īpašums ir palielinājies par Object.assign()vai izplatīt operators.
Par configurableatribūtu kontroles vienlaicīgi vai īpašumu var izdzēsti no objekta un vai tās atribūtiem (izņemot valueun writable) var tikt mainīts.
Ieteicamā literatūra: Javascript Object defineProperties ()








