JavaScript/Objekte/Object/defineProperty
Aus SELFHTML-Wiki
JavaScript | Objekte | Object
Die Object.defineProperty()-Methode definiert oder ändert den Propertydescriptor einer Eigenschaft eines Objekts.[1] [2]
Syntax:
Object.defineProperty(object, propertyName, descriptor);
Folgende Parameter sind erforderlich:
object
- Objekt, das neue oder geänderte Eigenschaften erhält
propertyName
- Der Name der Eigenschaft, für die ein Deskriptor gesetzt werden soll. Falls eine Eigenschaft mit diesem Namen schon existiert, wird sie überschrieben.
descriptor
- Der Propertydescriptor, der gesetzt werden soll.
Der Propertydescriptor ist ein Objekt mit bis zu 4 Eigenschaften. Sein Aufbau ist in dem verlinkten Artikel beschrieben.
Beispiele
Definieren einer Readonly-Eigenschaft für ein Objekt
let auto = { marke: "DeLorean" }; Object.defineProperty(auto, "farbe", { writable: false, value: "schwarz" })
Definieren einer geschützen Eigenschaft mit getter und setter
Object.defineProperty(auto, "zeit", { enumerable: true, configurable: false, get: function() { return this.fluxCapacitor.computeCurrentTime(); } set: function(newTime) { this.fluxCapacitor.setTargetTime(newTime); this.accelerator.setMax(); } }); auto.zeit = "05.11.1955"; // Zurück in die Zukunft!
Weblinks
- ↑ ECMAScript Spezifikation (ECMA-262): Object.defineProperty()
- ↑ MDN: object.defineProperty()