Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Bruk av Parameterobjekter | Mastering JavaScript-klasser og Arv
Avansert JavaScript-mestring

bookBruk av Parameterobjekter

Når klasser krever flere dataverdier for å initialisere et objekt, kan håndtering av mange individuelle parametere raskt bli komplisert og utsatt for feil.

Bruk av et enkelt objekt som parameter

Når man oppretter komplekse objekter, kan det bli tungvint og feilutsatt å sende mange parametere inn i en klassekonstruktør. En ryddig løsning er å bruke et parameterobjekt, der du sender ett enkelt objekt som inneholder alle nødvendige egenskaper. Denne tilnærmingen holder koden organisert og reduserer risikoen for feil, spesielt når antallet parametere øker.

Tenk på det som å legge inn en bestilling på en spesialbygd bil. I stedet for å fortelle produsenten hver detalj – som farge, motortype, interiørmateriale og andre funksjoner – én etter én, gir du en spesifikasjonsliste (et objekt) som inneholder alle detaljene på én gang. Det er mer effektivt og mindre utsatt for feil.

I stedet for å definere flere parametere i constructor, aksepterer du ett enkelt objekt som inneholder alle dataene som trengs for 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 eksemplet, i stedet for å sende name, type, age og diet som separate parametere, sender vi et enkelt objekt til constructor. Denne metoden gjør klassen enklere å håndtere, spesielt når antallet egenskaper øker.

Fordeler med å sende et parameterobjekt

1. Lesbarhet og tydelighet

Å sende et objekt gjør funksjonskallet mer lesbart. Du kan umiddelbart se hvilke verdier som tilsvarer hvilke egenskaper uten å være avhengig av rekkefølgen på parameterne.

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 sender flere verdier i det andre eksempelet, er det ikke umiddelbart åpenbart hvilke verdier som tilsvarer hvilke egenskaper uten å se på constructor-definisjonen. Parameterobjekt-tilnærmingen gir bedre klarhet.

2. Fleksibilitet

Ved å bruke et parameterobjekt kan du utelate enkelte egenskaper eller legge til nye uten å endre funksjonssignaturen. Dette gjør konstruktøren mer tilpasningsdyktig, spesielt når du må håndtere valgfrie parametere.

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

I dette tilfellet sender vi kun name og age uten type eller diet. Hvis disse egenskapene er valgfrie i klassen din, kan du enkelt håndtere dem ved å bruke standardverdier eller la dem være udefinert.

1. Hvilket av følgende viser korrekt bruk av et parameterobjekt i en constructor?

2. Gitt følgende klasse-definisjon, hvordan kan du instansiere et nytt Animal-objekt kalt rabbit med kun name og age ved bruk av et parameterobjekt?

question mark

Hvilket av følgende viser korrekt bruk av et parameterobjekt i en constructor?

Select the correct answer

question mark

Gitt følgende klasse-definisjon, hvordan kan du instansiere et nytt Animal-objekt kalt rabbit med kun name og age ved bruk av et parameterobjekt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 2.22

bookBruk av Parameterobjekter

Sveip for å vise menyen

Når klasser krever flere dataverdier for å initialisere et objekt, kan håndtering av mange individuelle parametere raskt bli komplisert og utsatt for feil.

Bruk av et enkelt objekt som parameter

Når man oppretter komplekse objekter, kan det bli tungvint og feilutsatt å sende mange parametere inn i en klassekonstruktør. En ryddig løsning er å bruke et parameterobjekt, der du sender ett enkelt objekt som inneholder alle nødvendige egenskaper. Denne tilnærmingen holder koden organisert og reduserer risikoen for feil, spesielt når antallet parametere øker.

Tenk på det som å legge inn en bestilling på en spesialbygd bil. I stedet for å fortelle produsenten hver detalj – som farge, motortype, interiørmateriale og andre funksjoner – én etter én, gir du en spesifikasjonsliste (et objekt) som inneholder alle detaljene på én gang. Det er mer effektivt og mindre utsatt for feil.

I stedet for å definere flere parametere i constructor, aksepterer du ett enkelt objekt som inneholder alle dataene som trengs for 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 eksemplet, i stedet for å sende name, type, age og diet som separate parametere, sender vi et enkelt objekt til constructor. Denne metoden gjør klassen enklere å håndtere, spesielt når antallet egenskaper øker.

Fordeler med å sende et parameterobjekt

1. Lesbarhet og tydelighet

Å sende et objekt gjør funksjonskallet mer lesbart. Du kan umiddelbart se hvilke verdier som tilsvarer hvilke egenskaper uten å være avhengig av rekkefølgen på parameterne.

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 sender flere verdier i det andre eksempelet, er det ikke umiddelbart åpenbart hvilke verdier som tilsvarer hvilke egenskaper uten å se på constructor-definisjonen. Parameterobjekt-tilnærmingen gir bedre klarhet.

2. Fleksibilitet

Ved å bruke et parameterobjekt kan du utelate enkelte egenskaper eller legge til nye uten å endre funksjonssignaturen. Dette gjør konstruktøren mer tilpasningsdyktig, spesielt når du må håndtere valgfrie parametere.

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

I dette tilfellet sender vi kun name og age uten type eller diet. Hvis disse egenskapene er valgfrie i klassen din, kan du enkelt håndtere dem ved å bruke standardverdier eller la dem være udefinert.

1. Hvilket av følgende viser korrekt bruk av et parameterobjekt i en constructor?

2. Gitt følgende klasse-definisjon, hvordan kan du instansiere et nytt Animal-objekt kalt rabbit med kun name og age ved bruk av et parameterobjekt?

question mark

Hvilket av følgende viser korrekt bruk av et parameterobjekt i en constructor?

Select the correct answer

question mark

Gitt følgende klasse-definisjon, hvordan kan du instansiere et nytt Animal-objekt kalt rabbit med kun name og age ved bruk av et parameterobjekt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 6
some-alt