Die JavaScript Object.defineProperty () -Methode fügt vorhandene Eigenschaften für ein Objekt hinzu oder ändert sie und gibt das Objekt zurück.
Die Syntax der defineProperty()Methode lautet:
 Object.defineProperty(obj, prop, descriptor)
Die defineProperty()Methode ist eine statische Methode und wird unter Verwendung des ObjectKlassennamens aufgerufen .
defineProperty () Parameter
Die defineProperty()Methode umfasst:
- obj - Das Objekt, für das die Eigenschaft definiert werden soll.
 - prop - Der Name oder 
Symboldie Eigenschaft, die definiert oder geändert werden soll. - Deskriptor - Der Deskriptor für die Eigenschaft, die definiert oder geändert wird.
 
Es gibt zwei Arten von Eigenschaftsdeskriptoren, die in Objekten vorhanden sind: Datendeskriptoren und Accessordeskriptoren. Sie können die folgenden optionalen Eigenschaften haben.
configurableenumerable
Ein Datendeskriptor kann auch haben:
valuewritable
Ein Accessor-Deskriptor kann auch haben:
getset
Rückgabewert von defineProperty ()
- Gibt das Objekt zurück, das an die Funktion übergeben wurde.
 
Hinweis:
- Standardmäßig sind mit addierte Werte 
Object.defineProperty()unveränderlich und nicht aufzählbar. - Wenn ein Deskriptor keines hat 
value,writable,getundsetTasten, wird es als ein Datendeskriptor behandelt. Wenn ein Deskriptor beidevalueoderwritableundgetodersetSchlüssel hat, wird eine Ausnahme ausgelöst. 
Beispiel: Hinzufügen einer Dateneigenschaft zum 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
Ausgabe
788 Wert setzen… Wert bekommen… 6969
Wir können nicht sowohl Daten- als auch Accessor-Eigenschaftsbeschreibungen mischen, da dies einen Fehler auslösen würde.
Um eine Eigenschaft zu ändern, muss die Eigenschaft des Objekts writablesein true, sonst wird es nicht geändert und im strengen Modus wird kein Fehler ausgegeben.
Das enumerableEigenschaftsattribut definiert, ob die Eigenschaft vom Object.assign()Operator ausgewählt oder verteilt wird.
Das configurableAttribut steuert gleichzeitig, ob die Eigenschaft aus dem Objekt gelöscht werden kann und ob ihre Attribute (außer valueund writable) geändert werden können.
Empfohlene Lektüre: Javascript Object defineProperties ()








