Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Brug af Parameterobjekter | Mestering af JavaScript-klasser og Arv
Avanceret JavaScript-Mestring

bookBrug af Parameterobjekter

Når klasser kræver flere dataværdier for at initialisere et objekt, kan håndtering af flere individuelle parametre hurtigt blive komplekst og fejlbehæftet.

Brug af et enkelt objekt som parameter

Ved oprettelse af komplekse objekter kan det blive besværligt og fejlbehæftet at sende flere parametre til en klasses konstruktør. En struktureret løsning er at anvende et parameterobjekt, hvor du sender et enkelt objekt, der indeholder alle nødvendige egenskaber. Denne tilgang holder koden organiseret og mindsker risikoen for fejl, især når antallet af parametre vokser.

Forestil dig det som at afgive en bestilling på en specialbygget bil. I stedet for at oplyse producenten om hver enkelt detalje – såsom farve, motortype, interiørmateriale og andre funktioner – én ad gangen, leverer du et specifikationsark (et objekt), der indeholder alle disse oplysninger på én gang. Det er mere effektivt og mindre tilbøjeligt til fejl.

I stedet for at definere flere parametre i constructor, accepteres et enkelt objekt, der indeholder alle de nødvendige data til initialisering.

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

I dette eksempel, i stedet for at videregive name, type, age og diet som separate parametre, videregives et enkelt objekt til constructor. Denne metode gør klassen lettere at administrere, især når antallet af egenskaber vokser.

Fordele ved at videregive et parameterobjekt

1. Læselighed og klarhed

Videregivelse af et objekt gør funktionskaldet mere læsbart. Det er straks tydeligt, hvilke værdier der svarer til hvilke egenskaber, uden at skulle stole på rækkefølgen af parametrene.

const pig = new Animal({
  name: 'Pig',
  type: 'Domestic',
  age: 18,
  diet: 'Omnivore',
});

Sammenlignet med:

const pig = new Animal('Pig', 'Domestic', 18, 'Omnivore');

Når du videregiver flere værdier i det andet eksempel, er det ikke umiddelbart tydeligt, hvilke værdier der svarer til hvilke egenskaber uden at henvise til constructor-definitionen. Parameterobjekt-tilgangen forbedrer tydeligheden.

2. Fleksibilitet

Brug af et parameterobjekt gør det muligt at udelade visse egenskaber eller tilføje nye uden at ændre funktionssignaturen. Dette gør konstruktøren mere tilpasningsdygtig, især når der skal håndteres valgfrie parametre.

const racoon = new Animal({
  name: 'Raccoon',
  age: 2,
});

I dette tilfælde videregives kun name og age uden type eller diet. Hvis disse egenskaber er valgfrie i din klasse, kan de nemt håndteres ved at give standardværdier eller lade dem være udefinerede.

1. Hvilket af følgende demonstrerer korrekt brug af et parameterobjekt i en constructor?

2. Givet følgende klasse-definition, hvordan instantieres et nyt Animal-objekt kaldet rabbit med kun name og age ved brug af et parameterobjekt?

question mark

Hvilket af følgende demonstrerer korrekt brug af et parameterobjekt i en constructor?

Select the correct answer

question mark

Givet følgende klasse-definition, hvordan instantieres et nyt Animal-objekt kaldet rabbit med kun name og age ved brug af et parameterobjekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 2.22

bookBrug af Parameterobjekter

Stryg for at vise menuen

Når klasser kræver flere dataværdier for at initialisere et objekt, kan håndtering af flere individuelle parametre hurtigt blive komplekst og fejlbehæftet.

Brug af et enkelt objekt som parameter

Ved oprettelse af komplekse objekter kan det blive besværligt og fejlbehæftet at sende flere parametre til en klasses konstruktør. En struktureret løsning er at anvende et parameterobjekt, hvor du sender et enkelt objekt, der indeholder alle nødvendige egenskaber. Denne tilgang holder koden organiseret og mindsker risikoen for fejl, især når antallet af parametre vokser.

Forestil dig det som at afgive en bestilling på en specialbygget bil. I stedet for at oplyse producenten om hver enkelt detalje – såsom farve, motortype, interiørmateriale og andre funktioner – én ad gangen, leverer du et specifikationsark (et objekt), der indeholder alle disse oplysninger på én gang. Det er mere effektivt og mindre tilbøjeligt til fejl.

I stedet for at definere flere parametre i constructor, accepteres et enkelt objekt, der indeholder alle de nødvendige data til initialisering.

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

I dette eksempel, i stedet for at videregive name, type, age og diet som separate parametre, videregives et enkelt objekt til constructor. Denne metode gør klassen lettere at administrere, især når antallet af egenskaber vokser.

Fordele ved at videregive et parameterobjekt

1. Læselighed og klarhed

Videregivelse af et objekt gør funktionskaldet mere læsbart. Det er straks tydeligt, hvilke værdier der svarer til hvilke egenskaber, uden at skulle stole på rækkefølgen af parametrene.

const pig = new Animal({
  name: 'Pig',
  type: 'Domestic',
  age: 18,
  diet: 'Omnivore',
});

Sammenlignet med:

const pig = new Animal('Pig', 'Domestic', 18, 'Omnivore');

Når du videregiver flere værdier i det andet eksempel, er det ikke umiddelbart tydeligt, hvilke værdier der svarer til hvilke egenskaber uden at henvise til constructor-definitionen. Parameterobjekt-tilgangen forbedrer tydeligheden.

2. Fleksibilitet

Brug af et parameterobjekt gør det muligt at udelade visse egenskaber eller tilføje nye uden at ændre funktionssignaturen. Dette gør konstruktøren mere tilpasningsdygtig, især når der skal håndteres valgfrie parametre.

const racoon = new Animal({
  name: 'Raccoon',
  age: 2,
});

I dette tilfælde videregives kun name og age uden type eller diet. Hvis disse egenskaber er valgfrie i din klasse, kan de nemt håndteres ved at give standardværdier eller lade dem være udefinerede.

1. Hvilket af følgende demonstrerer korrekt brug af et parameterobjekt i en constructor?

2. Givet følgende klasse-definition, hvordan instantieres et nyt Animal-objekt kaldet rabbit med kun name og age ved brug af et parameterobjekt?

question mark

Hvilket af følgende demonstrerer korrekt brug af et parameterobjekt i en constructor?

Select the correct answer

question mark

Givet følgende klasse-definition, hvordan instantieres et nyt Animal-objekt kaldet rabbit med kun name og age ved brug af et parameterobjekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 6
some-alt