aboutsummaryrefslogtreecommitdiff
path: root/files/de/web/javascript/reference/classes/static/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/de/web/javascript/reference/classes/static/index.html')
-rw-r--r--files/de/web/javascript/reference/classes/static/index.html137
1 files changed, 137 insertions, 0 deletions
diff --git a/files/de/web/javascript/reference/classes/static/index.html b/files/de/web/javascript/reference/classes/static/index.html
new file mode 100644
index 0000000000..f9ba577d7b
--- /dev/null
+++ b/files/de/web/javascript/reference/classes/static/index.html
@@ -0,0 +1,137 @@
+---
+title: Statische Methoden
+slug: Web/JavaScript/Reference/Classes/static
+tags:
+ - Classes
+ - ECMAScript 2015
+ - JavaScript
+ - Static
+translation_of: Web/JavaScript/Reference/Classes/static
+original_slug: Web/JavaScript/Reference/Klassen/static
+---
+<div>{{jsSidebar("Classes")}}</div>
+
+<p>Das <code><strong>static</strong></code> Schüsselwort definiert statische Methoden für eine Klasse.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/classes-static.html")}}</div>
+
+
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">static methodenName() { ... }</pre>
+
+<h2 id="Beschreibung">Beschreibung</h2>
+
+<p>Statische Methoden werden ohne Instanzierung einer Klasse aufgerufen und sind über eine erzeugte Instanz nicht aufrufbar. Oft werden in statische Methoden für Hilfsfunktionen verwendet.</p>
+
+<h2 id="Aufruf_von_statischen_Methoden">Aufruf von statischen Methoden</h2>
+
+<h3 id="Von_einer_anderen_statischen_Methode">Von einer anderen statischen Methode</h3>
+
+<p>Um eine statische Methode aus einer anderen statischen Methode der gleichen Klasse aufzurufen, kann das <code><a href="/de/docs/Web/JavaScript/Reference/Operators/this">this</a></code> Schlüsselwort verwendet werden.</p>
+
+<pre class="brush: js">class StaticMethodCall {
+ static staticMethod() {
+ return 'Static method has been called';
+ }
+ static anotherStaticMethod() {
+ return this.staticMethod() + ' from another static method';
+ }
+}
+StaticMethodCall.staticMethod();
+// 'Static method has been called'
+
+StaticMethodCall.anotherStaticMethod();
+// 'Static method has been called from another static method'</pre>
+
+<h3 id="Für_Klassenkonstruktoren_und_anderen_Methoden">Für Klassenkonstruktoren und anderen Methoden</h3>
+
+<p>Statische Methoden sind mit dem <code><a href="/de/docs/Web/JavaScript/Reference/Operators/this">this</a></code> Schlüsselwort nicht direkt erreichbar von nicht statischen Methoden. Man kann sie mit dem Klassennamen aufrufen: <code>KLASSENNAME.STATISCH_METHODE_NAME</code> oder mit der Aufrufen einer Eigenschaft von <code>constructor</code>: <code>this.constructor.</code><code>STATISCH_METHODE_NAME</code>.</p>
+
+<pre class="brush: js">class StaticMethodCall{
+ constructor(){
+ console.log(StaticMethodCall.staticMethod());
+ // 'static method has been called'
+
+ console.log(this.constructor.staticMethod());
+ // 'static method has been called'
+ }
+
+ static staticMethod(){
+ return 'static method has been called.';
+ }
+}</pre>
+
+<h2 id="Beispiele">Beispiele</h2>
+
+<p>Das folgende Beispiel demonstriert mehrere Dinge:</p>
+
+<ol>
+ <li>Wie eine statische Methode in einer Klasse implementiert wird.</li>
+ <li>Das von einer Klasse mit statischen Eigenschaften geerbt werden kann.</li>
+ <li>Wie eine statische Methode aufgerufen werden kann und wie nicht.</li>
+</ol>
+
+<pre class="brush: js">class Triple {
+ static triple(n) {
+ if (n === undefined) {
+ n = 1;
+ }
+ return n * 3;
+ }
+}
+
+class BiggerTriple extends Triple {
+ static triple(n) {
+ return super.triple(n) * super.triple(n);
+ }
+}
+
+console.log(Triple.triple()); // 3
+console.log(Triple.triple(6)); // 18
+
+var tp = new Triple();
+
+console.log(BiggerTriple.triple(3));
+// 81 (not affected by parent's instantiation)
+
+console.log(tp.triple());
+// 'tp.triple is not a function'.
+</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('ES2015', '#sec-class-definitions', 'Class definitions')}}</td>
+ <td>{{Spec2('ES2015')}}</td>
+ <td>Initiale Definition.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
+
+
+
+<p>{{Compat("javascript.classes.static")}}</p>
+
+<h2 id="Siehe_auch">Siehe auch</h2>
+
+<ul>
+ <li><a href="/de/docs/Web/JavaScript/Reference/Operators/class"><code>class</code> expression</a></li>
+ <li><a href="/de/docs/Web/JavaScript/Reference/Statements/class"><code>class</code> declaration</a></li>
+ <li><a href="/de/docs/Web/JavaScript/Reference/Classes">Classes</a></li>
+</ul>