From 4b1a9203c547c019fc5398082ae19a3f3d4c3efe Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:15 -0500 Subject: initial commit --- .../javascript/reference/functions/set/index.html | 149 +++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 files/de/web/javascript/reference/functions/set/index.html (limited to 'files/de/web/javascript/reference/functions/set') diff --git a/files/de/web/javascript/reference/functions/set/index.html b/files/de/web/javascript/reference/functions/set/index.html new file mode 100644 index 0000000000..7b0e5fcd83 --- /dev/null +++ b/files/de/web/javascript/reference/functions/set/index.html @@ -0,0 +1,149 @@ +--- +title: Setter +slug: Web/JavaScript/Reference/Functions/set +tags: + - ECMAScript 5 + - Functions + - JavaScript +translation_of: Web/JavaScript/Reference/Functions/set +--- +
{{jsSidebar("Functions")}}
+ +

Die set Syntax bindet eine Objekteigenschaft an eine Funktion welche aufgerufen wird, wenn die Eigenschaft neu beschrieben wird.

+ +
{{EmbedInteractiveExample("pages/js/functions-setter.html")}}
+ + + +

Syntax

+ +
{set prop(val) { . . . }}
+{set [expression](val) { . . . }}
+ +

Parameter

+ +
+
prop
+
Der Name der Eigenschaft, die an die gegebene Funktion gebunden wird.
+
+ +
+
val
+
Ein Alias für die Variable, die den Wert enthält, der der Eigenschaft prop zugewiesen wird.
+
expression
+
Beginnend mit ECMAScript 2015, kann auch ein Ausdruck für einen berechneten Eigenschaftsnamen genutzt werden, der an die Funktion gebunden wird.
+
+ +

Beschreibung

+ +

In JavaScript kann ein Setter benutzt werden, um eine Funktion aufzurufen, wenn eine Eigenschaft geändert werden soll. Setter werden oft in Verbindung mit Gettern als Pseudoeigenschaft benutzt. Es ist nicht möglich gleichzeitig einen Setter auf einer Eigenschaft zu haben, die eine tatsächlichen Wert hält.

+ +

Das folgende ist zu beachten, wenn mit der set Syntax gearbeitet wird:

+ +
+ +
+ +

Ein Setter kann mit dem delete Operator gelöscht werden.

+ +

Beispiele

+ +

Definieren eines Setters in einem neuen Objekt in der Objektinitialisierung

+ +

Das folgende definiert eine Pseudoeigenschaft current im Objekt language, die bei einer Zuweisung einen Wert in das log Array hinzufügt:

+ +
var language = {
+  set current(name) {
+    this.log.push(name);
+  },
+  log: []
+}
+
+language.current = 'EN';
+console.log(language.log); // ['EN']
+
+language.current = 'FA';
+console.log(language.log); // ['EN', 'FA']
+
+ +

Zu beachten ist, dass current nicht definiert ist und der Zugriff auf diese undefined als Ergebnis liefert.

+ +

Löschen eines Setter mit dem delete Operator

+ +

Wenn ein Setter gelöscht werden soll, muss man einfach delete benutzen:

+ +
delete o.current;
+
+ +

Definieren eines Setters auf einem existierenden Objekts mit defineProperty

+ +

Um einen Setter später zu einem existierenden Objekt hinzuzufügen, benutzt man {{jsxref("Object.defineProperty()")}}.

+ +
var o = {a: 0};
+
+Object.defineProperty(o, 'b', { set: function(x) { this.a = x / 2; } });
+
+o.b = 10; // Runs the setter, which assigns 10 / 2 (5) to the 'a' property
+console.log(o.a) // 5
+ +

Einsatz eines berechneten Eigenschaftsnamen

+ +
var expr = 'foo';
+
+var obj = {
+  baz: 'bar',
+  set [expr](v) { this.baz = v; }
+};
+
+console.log(obj.baz); // "bar"
+obj.foo = 'baz';      // run the setter
+console.log(obj.baz); // "baz"
+
+ +

Spezifikationen

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Initiale Definition.
{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ES6')}}Berechnete Eigenschaftsnamen hinzugefügt.
{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ESDraft')}} 
+ +

Browserkompatibilität

+ + + +

{{Compat("javascript.functions.set")}}

+ +

Siehe auch

+ + -- cgit v1.2.3-54-g00ecf