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

bookBrug af Statiske Metoder i JavaScript

Statisk metoder tilbyder delt funktionalitet på klasseniveau, tilgængelig uden at oprette en instans.

Hvad er statiske metoder?

Forestil dig et forsyningsselskab, der leverer elektricitet. Selskabet selv (klassen) leverer strømmen, men du (en instans) behøver ikke at oprette et kraftværk derhjemme. I stedet får du adgang til selskabets service (statisk metode) direkte.

Sådan defineres og anvendes statiske metoder

Statiske metoder deklareres ved hjælp af nøgleordet static. De kan kaldes direkte fra klassen, men har ikke adgang til instans-egenskaber eller -metoder, da de opererer på klasseniveau.

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 eksempel er metoderne square og cube statiske, hvilket betyder, at de tilhører MathUtils-klassen og kan kaldes direkte på selve klassen. Disse metoder udfører matematiske operationer og deles af hele klassen uden at være knyttet til en specifik instans.

Hvorfor bruge statiske metoder?

Statiske metoder er nyttige, når du ønsker at tilbyde funktionalitet relateret til klassen, men ikke har behov for at knytte det til individuelle instanser. De bruges ofte til hjælpefunktioner, hjælpemetoder eller logik, der gælder bredt for hele klassen.

  • Statiske metoder anvendes ofte til operationer, der gælder universelt, såsom matematiske beregninger, datomanipulation eller formatering af tekststrenge;
  • Statiske metoder kan også bruges til operationer, der involverer selve klassen, såsom at oprette instanser på specifikke måder, håndtere konfigurationer på klasseniveau eller give adgang til data på tværs af klassen.

Eksempel: Statisk hjælpemetode

Lad os tage et eksempel fra den virkelige verden, hvor en User-klasse har en statisk metode til at sammenligne to brugeres ID'er. Denne metode behøver ikke at interagere med data fra en individuel bruger, 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 eksempel tilhører den statiske metode compareIds klassen User og gør det muligt at sammenligne ID'er for to User-instanser uden behov for adgang til deres individuelle egenskaber eller metoder.

Væsentlige forskelle mellem statiske og instansmetoder

Virkelighedsnært eksempel: Applikationsværktøjsklasse

Forestil dig et scenarie, hvor en applikation skal logge data. En Logger-klasse kan have statiske metoder til at logge beskeder med forskellige niveauer (info, advarsel, fejl). Disse metoder kan tilgås globalt uden at oprette en instans af 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 eksempel er de statiske metoder info, warning og error hjælpefunktioner, der kan kaldes globalt for at logge beskeder på forskellige niveauer. Det er ikke nødvendigt at oprette en instans af Logger for at bruge disse metoder.

1. Hvad er en statisk metode?

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

question mark

Hvad er en statisk metode?

Select the correct answer

question mark

Hvordan definerer man en statisk metode i en klasse?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 12

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

Suggested prompts:

What are some other common use cases for static methods?

Can you explain the difference between static and instance methods in more detail?

How do I decide when to use a static method versus an instance method?

Awesome!

Completion rate improved to 2.22

bookBrug af Statiske Metoder i JavaScript

Stryg for at vise menuen

Statisk metoder tilbyder delt funktionalitet på klasseniveau, tilgængelig uden at oprette en instans.

Hvad er statiske metoder?

Forestil dig et forsyningsselskab, der leverer elektricitet. Selskabet selv (klassen) leverer strømmen, men du (en instans) behøver ikke at oprette et kraftværk derhjemme. I stedet får du adgang til selskabets service (statisk metode) direkte.

Sådan defineres og anvendes statiske metoder

Statiske metoder deklareres ved hjælp af nøgleordet static. De kan kaldes direkte fra klassen, men har ikke adgang til instans-egenskaber eller -metoder, da de opererer på klasseniveau.

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 eksempel er metoderne square og cube statiske, hvilket betyder, at de tilhører MathUtils-klassen og kan kaldes direkte på selve klassen. Disse metoder udfører matematiske operationer og deles af hele klassen uden at være knyttet til en specifik instans.

Hvorfor bruge statiske metoder?

Statiske metoder er nyttige, når du ønsker at tilbyde funktionalitet relateret til klassen, men ikke har behov for at knytte det til individuelle instanser. De bruges ofte til hjælpefunktioner, hjælpemetoder eller logik, der gælder bredt for hele klassen.

  • Statiske metoder anvendes ofte til operationer, der gælder universelt, såsom matematiske beregninger, datomanipulation eller formatering af tekststrenge;
  • Statiske metoder kan også bruges til operationer, der involverer selve klassen, såsom at oprette instanser på specifikke måder, håndtere konfigurationer på klasseniveau eller give adgang til data på tværs af klassen.

Eksempel: Statisk hjælpemetode

Lad os tage et eksempel fra den virkelige verden, hvor en User-klasse har en statisk metode til at sammenligne to brugeres ID'er. Denne metode behøver ikke at interagere med data fra en individuel bruger, 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 eksempel tilhører den statiske metode compareIds klassen User og gør det muligt at sammenligne ID'er for to User-instanser uden behov for adgang til deres individuelle egenskaber eller metoder.

Væsentlige forskelle mellem statiske og instansmetoder

Virkelighedsnært eksempel: Applikationsværktøjsklasse

Forestil dig et scenarie, hvor en applikation skal logge data. En Logger-klasse kan have statiske metoder til at logge beskeder med forskellige niveauer (info, advarsel, fejl). Disse metoder kan tilgås globalt uden at oprette en instans af 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 eksempel er de statiske metoder info, warning og error hjælpefunktioner, der kan kaldes globalt for at logge beskeder på forskellige niveauer. Det er ikke nødvendigt at oprette en instans af Logger for at bruge disse metoder.

1. Hvad er en statisk metode?

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

question mark

Hvad er en statisk metode?

Select the correct answer

question mark

Hvordan definerer man en statisk metode i en klasse?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 12
some-alt