CodeGym /Kurse /Frontend SELF DE /Statische Methoden

Statische Methoden

Frontend SELF DE
Level 40 , Lektion 1
Verfügbar

8.1 Deklaration von statischen Methoden

Statische Methoden in JavaScript sind Methoden, die direkt in der Klasse definiert sind, nicht in deren Instanzen. Sie werden direkt auf der Klasse aufgerufen, nicht auf den Objekten, die von dieser Klasse erstellt wurden. Statische Methoden werden oft verwendet, um Hilfsfunktionen zu erstellen, die sich auf die Klasse, aber nicht auf spezifische Objekte beziehen.

Statische Methoden werden mit dem Schlüsselwort static vor der Methodendefinition im Klassenrumpf deklariert.

Beispiel:

  • Die Methoden add und multiply sind als statisch deklariert mit Verwendung des Schlüsselworts static
  • Diese Methoden werden direkt auf der Klasse MathHelper und nicht auf deren Instanzen aufgerufen
JavaScript
    
      class MathHelper {
        static add(a, b) {
          return a + b;
        }

        static multiply(a, b) {
          return a * b;
        }
      }

      console.log(MathHelper.add(5, 3)); // 8
      console.log(MathHelper.multiply(5, 3)); // 15
    
  

8.2 Verwendung von statischen Methoden

Statische Methoden sind in folgenden Szenarien nützlich:

  1. Hilfsfunktionen: Statische Methoden können genutzt werden, um Utility-Funktionen zu erstellen, die Operationen ausführen, die mit einer Klasse verbunden sind.
  2. Factory-Methoden: Statische Methoden können genutzt werden, um Instanzen einer Klasse mit spezifischer Logik zu erstellen.
  3. Datenverarbeitung: Statische Methoden können genutzt werden, um datenbezogene Operationen durchzuführen, die keine Instanzen der Klasse erfordern.

Beispiel für Hilfsfunktionen:

  • Die Klasse StringUtil enthält die statischen Methoden capitalize und reverse, die mit Strings arbeiten
  • Diese Methoden werden direkt auf der Klasse StringUtil aufgerufen
JavaScript
    
      class StringUtil {
        static capitalize(str) {
          return str.charAt(0).toUpperCase() + str.slice(1);
        }

        static reverse(str) {
          return str.split('').reverse().join('');
        }
      }

      console.log(StringUtil.capitalize('hello')); // "Hello"
      console.log(StringUtil.reverse('hello')); // "olleh"
    
  

Beispiel für eine Factory-Methode:

Die statische Methode fromObject erstellt eine Instanz der Klasse Car aus einem Datenobjekt.

JavaScript
    
      class Car {
        constructor(brand, model) {
          this.brand = brand;
          this.model = model;
        }

        static fromObject(obj) {
          return new Car(obj.brand, obj.model);
        }
      }

      const carData = { brand: 'Toyota', model: 'Camry' };
      const car = Car.fromObject(carData);

      console.log(car.brand); // "Toyota"
      console.log(car.model); // "Camry"
    
  

8.3 Statische Methoden und Vererbung

In JavaScript werden statische Methoden auch von abgeleiteten Klassen geerbt. Abgeleitete Klassen können statische Methoden der Basisklasse verwenden oder sie überschreiben.

Beispiel für Vererbung von statischen Methoden:

  • Die statische Methode identify ist in der Klasse Animal definiert und wird in der Klasse Dog überschrieben
  • Die Methode identify wird auf beiden Klassen aufgerufen
JavaScript
    
      class Animal {
        static identify() {
          return 'This is an animal';
        }
      }

      class Dog extends Animal {
        static identify() {
          return 'This is a dog';
        }
      }

      console.log(Animal.identify()); // "This is an animal"
      console.log(Dog.identify()); // "This is a dog"
    
  

8.4 Zugriff auf statische Methoden innerhalb anderer Methoden

Statische Methoden können innerhalb anderer Methoden der Klasse unter Verwendung des Klassennamens aufgerufen werden.

Beispiel:

Die statische Methode calculateArea wird innerhalb einer anderen statischen Methode describeCircle aufgerufen, wobei das Schlüsselwort this verwendet wird, welches in diesem Kontext auf die Klasse Geometry verweist.

JavaScript
    
      class Geometry {
        static calculateArea(radius) {
          return Math.PI * radius * radius;
        }

        static describeCircle(radius) {
          const area = this.calculateArea(radius);
          return `A circle with radius ${radius} has an area of ${area.toFixed(2)}.`;
        }
      }

      console.log(Geometry.describeCircle(5)); // "A circle with radius 5 has an area of 78.54."
    
  

8.5 Statische Methoden und Klasseninstanzen

Statische Methoden können nicht auf Instanzen der Klasse aufgerufen werden. Ein Versuch, eine statische Methode auf einer Instanz aufzurufen, führt zu einem Fehler.

Beispiel:

Die statische Methode add wird auf der Klasse Calculator aufgerufen, nicht auf deren Instanz calc.

JavaScript
    
      class Calculator {
        static add(a, b) {
          return a + b;
        }
      }

      const calc = new Calculator();
      console.log(Calculator.add(3, 4)); // 7

      console.log(calc.add(3, 4)); // Fehler: calc.add ist keine Funktion
    
  
1
Aufgabe
Frontend SELF DE, Level 40, Lektion 1
Gesperrt
Statische Methoden
Statische Methoden
1
Aufgabe
Frontend SELF DE, Level 40, Lektion 1
Gesperrt
Fabrikmethode User
Fabrikmethode User
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION