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

bookBruk av statiske metoder i JavaScript

Statisk metoder gir delt funksjonalitet på klassenivå, tilgjengelig uten å opprette en instans.

Hva er statiske metoder?

Tenk på et kraftselskap som leverer strøm. Selskapet selv (klasse) leverer strømmen, men du (en instans) trenger ikke å bygge et kraftverk hjemme. I stedet får du tilgang til selskapets tjeneste (statisk metode) direkte.

Hvordan definere og bruke statiske metoder

Statiske metoder deklareres ved å bruke nøkkelordet static. Disse kan kalles direkte fra klassen, men har ikke tilgang til instansens egenskaper eller metoder siden de opererer på klassenivå.

123456789101112131415
class MathUtils { // Static method to calculate the square of a number static square(number) { return number * number; } // Static method to calculate the cube of a number static cube(number) { return number * number * number; } } // Calling static methods directly from the class console.log(MathUtils.square(4)); // Output: 16 console.log(MathUtils.cube(3)); // Output: 27
copy

I dette eksempelet er metodene square og cube statiske, noe som betyr at de tilhører MathUtils-klassen og kan kalles direkte på selve klassen. Disse metodene utfører matematiske operasjoner og deles av hele klassen uten å være knyttet til en spesifikk instans.

Hvorfor bruke statiske metoder?

Statiske metoder er nyttige når du ønsker å tilby funksjonalitet knyttet til klassen, men som ikke trenger å være bundet til individuelle instanser. De brukes ofte til hjelpefunksjoner, verktøymetoder eller logikk som gjelder for hele klassen.

  • Statiske metoder brukes ofte til operasjoner som gjelder universelt, som matematiske beregninger, datomanipulering eller strengformatering;
  • Statiske metoder kan også brukes til operasjoner som involverer selve klassen, som å opprette instanser på spesifikke måter, håndtere klassekonfigurasjoner eller tilby tilgang til data på klassenivå.

Eksempel: Statisk verktøymetode

La oss se på et eksempel fra virkeligheten der en User-klasse har en statisk metode for å sammenligne to brukeres ID-er. Denne metoden trenger ikke å samhandle med data fra individuelle brukere, så den kan være en statisk metode på klassen.

12345678910111213141516171819
class User { constructor(id, name) { this.id = id; this.name = name; } // Static method to compare user IDs static compareIds(user1, user2) { return user1.id === user2.id; } } const user1 = new User(101, 'Alice'); const user2 = new User(102, 'Bob'); const user3 = new User(101, 'Charlie'); // Using the static method to compare user IDs console.log(User.compareIds(user1, user2)); // Output: false console.log(User.compareIds(user1, user3)); // Output: true
copy

I dette eksemplet tilhører den statiske metoden compareIds klassen User og gjør det mulig å sammenligne ID-ene til to User-instanser uten behov for tilgang til deres individuelle egenskaper eller metoder.

Viktige forskjeller mellom statiske og instansmetoder

Virkelig eksempel: Verktøyklasse for applikasjon

La oss ta et scenario der en applikasjon må logge data. En Logger-klasse kan ha statiske metoder for å logge meldinger med ulike nivåer (info, advarsel, feil). Disse metodene kan nås globalt uten å opprette en instans av loggeren.

123456789101112131415161718
class Logger { static info(message) { console.log(`INFO: ${message}`); } static warning(message) { console.warn(`WARNING: ${message}`); } static error(message) { console.error(`ERROR: ${message}`); } } // Calling static methods directly from the Logger class Logger.info('Application started'); Logger.warning('Low disk space'); Logger.error('Uncaught exception occurred');
copy

I dette eksemplet er de statiske metodene info, warning og error hjelpefunksjoner som kan kalles globalt for å logge meldinger på ulike nivåer. Det er ikke nødvendig med en instans av Logger for å bruke disse metodene.

1. Hva er en statisk metode?

2. Hvordan definerer du en statisk metode i en klasse?

question mark

Hva er en statisk metode?

Select the correct answer

question mark

Hvordan definerer du en statisk metode i en klasse?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 12

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 statiske metoder i JavaScript

Sveip for å vise menyen

Statisk metoder gir delt funksjonalitet på klassenivå, tilgjengelig uten å opprette en instans.

Hva er statiske metoder?

Tenk på et kraftselskap som leverer strøm. Selskapet selv (klasse) leverer strømmen, men du (en instans) trenger ikke å bygge et kraftverk hjemme. I stedet får du tilgang til selskapets tjeneste (statisk metode) direkte.

Hvordan definere og bruke statiske metoder

Statiske metoder deklareres ved å bruke nøkkelordet static. Disse kan kalles direkte fra klassen, men har ikke tilgang til instansens egenskaper eller metoder siden de opererer på klassenivå.

123456789101112131415
class MathUtils { // Static method to calculate the square of a number static square(number) { return number * number; } // Static method to calculate the cube of a number static cube(number) { return number * number * number; } } // Calling static methods directly from the class console.log(MathUtils.square(4)); // Output: 16 console.log(MathUtils.cube(3)); // Output: 27
copy

I dette eksempelet er metodene square og cube statiske, noe som betyr at de tilhører MathUtils-klassen og kan kalles direkte på selve klassen. Disse metodene utfører matematiske operasjoner og deles av hele klassen uten å være knyttet til en spesifikk instans.

Hvorfor bruke statiske metoder?

Statiske metoder er nyttige når du ønsker å tilby funksjonalitet knyttet til klassen, men som ikke trenger å være bundet til individuelle instanser. De brukes ofte til hjelpefunksjoner, verktøymetoder eller logikk som gjelder for hele klassen.

  • Statiske metoder brukes ofte til operasjoner som gjelder universelt, som matematiske beregninger, datomanipulering eller strengformatering;
  • Statiske metoder kan også brukes til operasjoner som involverer selve klassen, som å opprette instanser på spesifikke måter, håndtere klassekonfigurasjoner eller tilby tilgang til data på klassenivå.

Eksempel: Statisk verktøymetode

La oss se på et eksempel fra virkeligheten der en User-klasse har en statisk metode for å sammenligne to brukeres ID-er. Denne metoden trenger ikke å samhandle med data fra individuelle brukere, så den kan være en statisk metode på klassen.

12345678910111213141516171819
class User { constructor(id, name) { this.id = id; this.name = name; } // Static method to compare user IDs static compareIds(user1, user2) { return user1.id === user2.id; } } const user1 = new User(101, 'Alice'); const user2 = new User(102, 'Bob'); const user3 = new User(101, 'Charlie'); // Using the static method to compare user IDs console.log(User.compareIds(user1, user2)); // Output: false console.log(User.compareIds(user1, user3)); // Output: true
copy

I dette eksemplet tilhører den statiske metoden compareIds klassen User og gjør det mulig å sammenligne ID-ene til to User-instanser uten behov for tilgang til deres individuelle egenskaper eller metoder.

Viktige forskjeller mellom statiske og instansmetoder

Virkelig eksempel: Verktøyklasse for applikasjon

La oss ta et scenario der en applikasjon må logge data. En Logger-klasse kan ha statiske metoder for å logge meldinger med ulike nivåer (info, advarsel, feil). Disse metodene kan nås globalt uten å opprette en instans av loggeren.

123456789101112131415161718
class Logger { static info(message) { console.log(`INFO: ${message}`); } static warning(message) { console.warn(`WARNING: ${message}`); } static error(message) { console.error(`ERROR: ${message}`); } } // Calling static methods directly from the Logger class Logger.info('Application started'); Logger.warning('Low disk space'); Logger.error('Uncaught exception occurred');
copy

I dette eksemplet er de statiske metodene info, warning og error hjelpefunksjoner som kan kalles globalt for å logge meldinger på ulike nivåer. Det er ikke nødvendig med en instans av Logger for å bruke disse metodene.

1. Hva er en statisk metode?

2. Hvordan definerer du en statisk metode i en klasse?

question mark

Hva er en statisk metode?

Select the correct answer

question mark

Hvordan definerer du en statisk metode i en klasse?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 12
some-alt