JavaScript/Objekte/Object/defineProperty
Aus SELFHTML-Wiki
< JavaScript | Objekte | Object(Weitergeleitet von DefineProperty)
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()