Javascript Object.defineProperty ()

Metoda JavaScript Object.defineProperty () dodaje ili mijenja postojeće svojstvo na objektu i vraća objekt.

Sintaksa defineProperty()metode je:

 Object.defineProperty(obj, prop, descriptor)

defineProperty()Metoda, kao statičke metode, zove se pomoću Objectime klase.

defineProperty () Parametri

defineProperty()Postupak uzima u:

  • obj - objekt na kojem se definira svojstvo.
  • oslonac - naziv ili Symbolsvojstvo koje treba definirati ili izmijeniti.
  • deskriptor - deskriptor svojstva koje se definira ili mijenja.

Deskriptori svojstava prisutni u objektima su dvije vrste: deskriptori podataka i deskriptori pristupa. Mogu imati sljedeća neobavezna svojstva.

  • configurable
  • enumerable

Deskriptori podataka također mogu imati:

  • value
  • writable

Deskriptori pristupa mogu također imati:

  • get
  • set

Vrati vrijednost iz defineProperty ()

  • Vraća objekt koji je proslijeđen funkciji.

Bilješka:

  • Prema zadanim postavkama vrijednosti dodane pomoću Object.defineProperty()nepromjenjive su i nisu nabrojive.
  • Ako deskriptor ima ni od value, writable, geti settipke, ona se tretira kao deskriptora podataka. Ako deskriptor ima tipke ili valueili writablei , pojavljuje se iznimka.getset

Primjer: Dodavanje svojstva podataka u objekt

 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

Izlaz

 788 Postavljanje vrijednosti … Dobivanje vrijednosti … 6969

Ne možemo miješati podatke i deskriptore svojstava pristupnika jer bi to stvorilo pogrešku.

Da bi se izmijenilo svojstvo, svojstvo objekta writablemora biti true, inače se neće izmijeniti i u strogom načinu izbaciti pogrešku.

enumerableAtribut svojstvo definira da li je imovina pokupila Object.assign()ili širiti operatera.

U configurableatributa kontrole u isto vrijeme da li se nekretnina može biti izbrisana iz objekta, te da li svojim atributima (osim valuei writable) može se mijenjati.

Preporučena literatura: Javascript objekt definiProperties ()

Zanimljivi članci...