Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Parameterobjekt | Klassen
Fortgeschrittene JavaScript-Meisterschaft
course content

Kursinhalt

Fortgeschrittene JavaScript-Meisterschaft

Fortgeschrittene JavaScript-Meisterschaft

2. DOM-Manipulation
3. Ereignisse und Ereignisbehandlung
4. Asynchrones JavaScript und APIs

book
Parameterobjekt

Wenn Klassen mehrere Daten benötigen, um ein Objekt zu initialisieren, kann das Verwalten mehrerer einzelner Parameter schnell komplex und fehleranfällig werden.

Verwendung eines einzelnen Objekts als Parameter

Beim Erstellen komplexer Objekte kann das Übergeben mehrerer Parameter an einen Klassenkonstruktor umständlich und fehleranfällig werden. Eine saubere Lösung ist die Verwendung eines Parameterobjekts, bei dem Sie ein einzelnes Objekt übergeben, das alle erforderlichen Eigenschaften enthält. Dieser Ansatz hält Ihren Code organisiert und reduziert das Risiko von Fehlern, insbesondere wenn die Anzahl der Parameter zunimmt.

Stellen Sie sich vor, Sie geben eine Bestellung für ein maßgeschneidertes Auto auf. Anstatt dem Hersteller jedes Detail - wie die Farbe, den Motortyp, das Innenmaterial und andere Merkmale - einzeln mitzuteilen, geben Sie ein Spezifikationsblatt (ein Objekt) an, das all diese Details auf einmal enthält. Es ist effizienter und weniger fehleranfällig.

Anstatt mehrere Parameter im constructor zu definieren, akzeptieren Sie ein einzelnes Objekt, das alle für die Initialisierung benötigten Daten enthält.

12345678910111213141516171819202122
class Animal { constructor({ name, type, age, diet }) { this.name = name; this.type = type; this.age = age; this.diet = diet; } // Method to describe the animal getInfo() { return `${this.name} is a ${this.age}-year-old ${this.type} animal that follows a ${this.diet} diet.`; } } const lion = new Animal({ name: 'Lion', type: 'Wild', age: 12, diet: 'Carnivore', }); console.log(lion.getInfo()); // Output: Lion is a 12-year-old Wild animal that follows a Carnivore diet.
copy

In diesem Beispiel übergeben wir anstelle von name, type, age und diet als separate Parameter ein einzelnes Objekt an den constructor. Diese Methode macht die Klasse leichter zu verwalten, insbesondere wenn die Anzahl der Eigenschaften zunimmt.

Vorteile der Übergabe eines Parameterobjekts

1. Lesbarkeit und Klarheit

Das Übergeben eines Objekts macht den Funktionsaufruf lesbarer. Sie können sofort sehen, welche Werte zu welchen Eigenschaften gehören, ohne sich auf die Reihenfolge der Parameter verlassen zu müssen.

Im Vergleich zu:

Wenn Sie im zweiten Beispiel mehrere Werte übergeben, ist es nicht sofort ersichtlich, welche Werte zu welchen Eigenschaften gehören, ohne auf die constructor-Definition zu verweisen. Der Parameterobjekt-Ansatz verbessert die Klarheit.

2. Flexibilität

Die Verwendung eines Parameterobjekts ermöglicht es Ihnen, bestimmte Eigenschaften zu überspringen oder neue hinzuzufügen, ohne die Funktionssignatur zu ändern. Dies macht den Konstruktor anpassungsfähiger, insbesondere wenn Sie optionale Parameter handhaben müssen.

In diesem Fall übergeben wir nur name und age ohne type oder diet. Wenn diese Eigenschaften in Ihrer Klasse optional sind, können Sie sie leicht verwalten, indem Sie auf bestimmte Werte standardisieren oder sie undefiniert lassen.

1. Welche der folgenden Optionen demonstriert korrekt die Verwendung eines Parameterobjekts in einem constructor?

2. Angenommen, Sie haben die folgende Klassendefinition, wie würden Sie ein neues Animal-Objekt namens rabbit mit nur name und age unter Verwendung eines Parameterobjekts instanziieren?

Welche der folgenden Optionen demonstriert korrekt die Verwendung eines Parameterobjekts in einem `constructor`?

Welche der folgenden Optionen demonstriert korrekt die Verwendung eines Parameterobjekts in einem constructor?

Wählen Sie die richtige Antwort aus

Angenommen, Sie haben die folgende Klassendefinition, wie würden Sie ein neues `Animal`-Objekt namens `rabbit` mit nur `name` und `age` unter Verwendung eines Parameterobjekts instanziieren?

Angenommen, Sie haben die folgende Klassendefinition, wie würden Sie ein neues Animal-Objekt namens rabbit mit nur name und age unter Verwendung eines Parameterobjekts instanziieren?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 6
We're sorry to hear that something went wrong. What happened?
some-alt