aboutsummaryrefslogtreecommitdiff
path: root/files/de/web/javascript/reference/functions/set
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
commit4b1a9203c547c019fc5398082ae19a3f3d4c3efe (patch)
treed4a40e13ceeb9f85479605110a76e7a4d5f3b56b /files/de/web/javascript/reference/functions/set
parent33058f2b292b3a581333bdfb21b8f671898c5060 (diff)
downloadtranslated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.gz
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.bz2
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.zip
initial commit
Diffstat (limited to 'files/de/web/javascript/reference/functions/set')
-rw-r--r--files/de/web/javascript/reference/functions/set/index.html149
1 files changed, 149 insertions, 0 deletions
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
+---
+<div>{{jsSidebar("Functions")}}</div>
+
+<p>Die <strong><code>set</code></strong> Syntax bindet eine Objekteigenschaft an eine Funktion welche aufgerufen wird, wenn die Eigenschaft neu beschrieben wird.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/functions-setter.html")}}</div>
+
+
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">{set <em>prop</em>(<em>val</em>) { . . . }}
+{set [expression](<em>val</em>) { . . . }}</pre>
+
+<h3 id="Parameter">Parameter</h3>
+
+<dl>
+ <dt><code>prop</code></dt>
+ <dd>Der Name der Eigenschaft, die an die gegebene Funktion gebunden wird.</dd>
+</dl>
+
+<dl>
+ <dt><code>val</code></dt>
+ <dd>Ein Alias für die Variable, die den Wert enthält, der der Eigenschaft <code>prop</code> zugewiesen wird.</dd>
+ <dt>expression</dt>
+ <dd>Beginnend mit ECMAScript 2015, kann auch ein Ausdruck für einen berechneten Eigenschaftsnamen genutzt werden, der an die Funktion gebunden wird.</dd>
+</dl>
+
+<h2 id="Beschreibung">Beschreibung</h2>
+
+<p>In JavaScript kann ein <em>Setter</em> 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.</p>
+
+<p>Das folgende ist zu beachten, wenn mit der <code>set</code> Syntax gearbeitet wird:</p>
+
+<div>
+<ul>
+ <li>Sie kann ein Bezeichner enthalten, welcher entweder eine Zahl oder ein String ist</li>
+ <li>Sie muss exakt einen Parameter haben (siehe <a class="external" href="http://whereswalden.com/2010/08/22/incompatible-es5-change-literal-getter-and-setter-functions-must-now-have-exactly-zero-or-one-arguments/" rel="external nofollow">Incompatible <abbr title="ECMAScript 5th edition">ES5</abbr> change: literal getter and setter functions must now have exactly zero or one arguments</a> für mehr Informationen);</li>
+ <li>Sie darf nicht in einem Objektliteral mit einem anderen <code>set</code> oder einen Dateneintrag mit der gleichen Eigenschaft geben. (<code>{ set x(v) { }, set x(v) { } }</code> und <code>{ x: ..., set x(v) { } }</code> sind verboten)</li>
+</ul>
+</div>
+
+<p>Ein Setter kann mit dem <a href="/de/docs/Web/JavaScript/Reference/Operators/delete" title="en-US/docs/JavaScript/Reference/Operators/Special/delete"><code>delete</code></a> Operator gelöscht werden.</p>
+
+<h2 id="Beispiele">Beispiele</h2>
+
+<h3 id="Definieren_eines_Setters_in_einem_neuen_Objekt_in_der_Objektinitialisierung">Definieren eines Setters in einem neuen Objekt in der Objektinitialisierung</h3>
+
+<p>Das folgende definiert eine Pseudoeigenschaft <code>current</code> im Objekt <code>language</code>, die bei einer Zuweisung einen Wert in das <code>log</code> Array hinzufügt:</p>
+
+<pre class="brush: js">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']
+</pre>
+
+<p>Zu beachten ist, dass <code>current</code> nicht definiert ist und der Zugriff auf diese <code>undefined</code> als Ergebnis liefert.</p>
+
+<h3 id="Löschen_eines_Setter_mit_dem_delete_Operator">Löschen eines Setter mit dem <code>delete</code> Operator</h3>
+
+<p>Wenn ein Setter gelöscht werden soll, muss man einfach <code><a href="/de/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code> benutzen:</p>
+
+<pre class="brush: js">delete o.current;
+</pre>
+
+<h3 id="Definieren_eines_Setters_auf_einem_existierenden_Objekts_mit_defineProperty">Definieren eines Setters auf einem existierenden Objekts mit <code>defineProperty</code></h3>
+
+<p>Um einen Setter später zu einem existierenden Objekt hinzuzufügen, benutzt man {{jsxref("Object.defineProperty()")}}.</p>
+
+<pre class="brush: js">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</pre>
+
+<h3 id="Einsatz_eines_berechneten_Eigenschaftsnamen">Einsatz eines berechneten Eigenschaftsnamen</h3>
+
+<pre class="brush: js">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"
+</pre>
+
+<h2 id="Spezifikationen">Spezifikationen</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Spezifikation</th>
+ <th scope="col">Status</th>
+ <th scope="col">Kommentar</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td>Initiale Definition.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Berechnete Eigenschaftsnamen hinzugefügt.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
+
+
+
+<p>{{Compat("javascript.functions.set")}}</p>
+
+<h2 id="Siehe_auch">Siehe auch</h2>
+
+<ul>
+ <li><a href="/de/docs/Web/JavaScript/Reference/Functions/get">Getter</a></li>
+ <li>{{jsxref("Operators/delete", "delete")}}</li>
+ <li>{{jsxref("Object.defineProperty()")}}</li>
+ <li>{{jsxref("Object.defineGetter", "__defineGetter__")}}</li>
+ <li>{{jsxref("Object.defineSetter", "__defineSetter__")}}</li>
+ <li><a href="/de/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">Defining Getters and Setters</a> im JavaScript Guide</li>
+</ul>