JavaScript/Objekte/Object/defineProperty

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

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

  1. ECMAScript Spezifikation (ECMA-262): Object.defineProperty()
  2. MDN: object.defineProperty()