Kursinhalt
Fortgeschrittene JavaScript-Meisterschaft
Fortgeschrittene JavaScript-Meisterschaft
Klassenmethoden
Jetzt, da wir wissen, wie man Eigenschaften mit dem Konstruktor hinzufügt, lassen Sie uns erkunden, wie man Methoden zu einer Klasse hinzufügt.
Definieren und Verwenden von Klassenmethoden
Diese Methoden arbeiten typischerweise mit den Eigenschaften des Objekts und bieten eine Möglichkeit, mit dessen Daten zu interagieren.
Um eine Klassenmethode zu definieren, deklarieren Sie einfach eine Funktion innerhalb der Klasse, ohne das Schlüsselwort function
zu verwenden.
In diesem Beispiel ist getInfo
eine Methode der Animal
-Klasse. Jede Instanz von Animal
kann diese Methode aufrufen, um Informationen über diese bestimmte Instanz abzurufen.
Wie Methoden mit Instanzen einer Klasse verknüpft sind
Wenn Sie eine Instanz einer Klasse erstellen, werden die innerhalb der Klasse definierten Methoden automatisch für diese Instanz verfügbar. Diese Methoden können auf die Eigenschaften der Instanz zugreifen und diese manipulieren, indem sie das Schlüsselwort this
verwenden, das sich auf das aktuelle Objekt bezieht.
Denken Sie an Methoden als Werkzeuge, die jedes Objekt (Instanz) mit sich führt. Jedes Objekt hat seine eigenen Daten (Eigenschaften), aber sie teilen sich die gleichen Werkzeuge (Methoden), um mit diesen Daten zu interagieren.
Betrachten wir das Beispiel:
class Animal { constructor(name, type) { this.name = name; this.type = type; } // Class method getInfo() { return `${this.name} is a ${this.type} animal.`; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. const pig = new Animal('Pig', 'Domestic'); console.log(pig.getInfo()); // Output: Pig is a Domestic animal.
In diesem Beispiel sind sowohl lion
als auch pig
Instanzen der Animal
Klasse. Die getInfo
Methode ist für beide verfügbar und liefert unterschiedliche Ergebnisse basierend auf den Eigenschaften der spezifischen Instanz, auf der sie aufgerufen wird. Dies zeigt, wie Methoden über Instanzen hinweg geteilt werden, aber auf daten spezifisch für jede einzelne Instanz operieren.
Warum Klassenmethoden verwenden?
Klassenmethoden definieren Verhaltensweisen, die spezifisch für das Objekt sind. Sie machen den Code modularer, wartbarer und schaffen eine klare Trennung der Verantwortlichkeiten. Anstatt Objekteigenschaften direkt zu manipulieren, bieten Klassenmethoden eine kontrollierte Möglichkeit, mit den Daten des Objekts zu interagieren und sie zu ändern.
Beispiel mit einer Methode, die den Objektzustand ändert:
class Animal { constructor(name, type) { this.name = name; this.type = type; } getInfo() { return `${this.name} is a ${this.type} animal.`; } changeType(newType) { this.type = newType; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. lion.changeType('Domestic'); console.log(lion.getInfo()); // Output: Lion is a Domestic animal.
In diesem Beispiel ermöglicht die Methode changeType
, die Eigenschaft type
des Objekts zu aktualisieren. Dies zeigt, wie Methoden Logik kapseln können, die den Zustand des Objekts direkt beeinflusst.
1. Was ist eine Klassenmethode?
2. Wie definiert man in einer Klasse eine Methode namens speak
, die eine Instanz verwenden kann?
3. Was gibt der folgende Code aus?
Danke für Ihr Feedback!