Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Använda Statiska Metoder i JavaScript | Bemästra JavaScript-klasser och Arv
Avancerad JavaScript-mästerskap

bookAnvända Statiska Metoder i JavaScript

Statiska metoder erbjuder delad funktionalitet på klassenivå och är tillgängliga utan att skapa en instans.

Vad är statiska metoder?

Tänk på ett elbolag som levererar elektricitet. Själva företaget (klassen) tillhandahåller elen, men du (en instans) behöver inte bygga ett kraftverk hemma. Istället använder du företagets tjänst (statisk metod) direkt.

Hur man definierar och använder statiska metoder

Statiska metoder deklareras med nyckelordet static. De kan anropas direkt från klassen, men har inte tillgång till instansens egenskaper eller metoder eftersom de verkar på klassnivå.

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 detta exempel är metoderna square och cube statiska, vilket innebär att de tillhör klassen MathUtils och kan anropas direkt på själva klassen. Dessa metoder utför matematiska operationer och delas av hela klassen utan att behöva vara kopplade till någon specifik instans.

Varför använda statiska metoder?

Statiska metoder är användbara när du vill tillhandahålla funktionalitet som är relaterad till klassen men inte behöver vara kopplad till enskilda instanser. De används ofta för hjälpfunktioner, verktygsmetoder eller logik som gäller för hela klassen.

  • Statiska metoder används ofta för operationer som gäller generellt, såsom matematiska beräkningar, datumhantering eller strängformatering;
  • Statiska metoder kan även användas för operationer som involverar själva klassen, såsom att skapa instanser på specifika sätt, hantera klassnivåkonfigurationer eller tillhandahålla klassövergripande dataåtkomst.

Exempel: Statisk hjälpfunktion

Vi tar ett verkligt exempel där en User-klass har en statisk metod för att jämföra två användares ID. Denna metod behöver inte interagera med någon enskild användares data, så den kan vara en statisk metod 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 det här exemplet tillhör den statiska metoden compareIds klassen User och möjliggör jämförelse av ID:n för två User-instanser utan åtkomst till deras individuella egenskaper eller metoder.

Viktiga skillnader mellan statiska och instansmetoder

Exempel från verkligheten: Verktygsklass för applikation

Anta ett scenario där en applikation behöver logga data. En Logger-klass kan ha statiska metoder för att logga meddelanden på olika nivåer (info, varning, fel). Dessa metoder kan nås globalt utan att skapa en instans av loggern.

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 det här exemplet är de statiska metoderna info, warning och error hjälpfunktioner som kan anropas globalt för att logga meddelanden på olika nivåer. Ingen instans av Logger behövs för att använda dessa metoder.

1. Vad är en statisk metod?

2. Hur definierar du en statisk metod i en klass?

question mark

Vad är en statisk metod?

Select the correct answer

question mark

Hur definierar du en statisk metod i en klass?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 12

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookAnvända Statiska Metoder i JavaScript

Svep för att visa menyn

Statiska metoder erbjuder delad funktionalitet på klassenivå och är tillgängliga utan att skapa en instans.

Vad är statiska metoder?

Tänk på ett elbolag som levererar elektricitet. Själva företaget (klassen) tillhandahåller elen, men du (en instans) behöver inte bygga ett kraftverk hemma. Istället använder du företagets tjänst (statisk metod) direkt.

Hur man definierar och använder statiska metoder

Statiska metoder deklareras med nyckelordet static. De kan anropas direkt från klassen, men har inte tillgång till instansens egenskaper eller metoder eftersom de verkar på klassnivå.

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 detta exempel är metoderna square och cube statiska, vilket innebär att de tillhör klassen MathUtils och kan anropas direkt på själva klassen. Dessa metoder utför matematiska operationer och delas av hela klassen utan att behöva vara kopplade till någon specifik instans.

Varför använda statiska metoder?

Statiska metoder är användbara när du vill tillhandahålla funktionalitet som är relaterad till klassen men inte behöver vara kopplad till enskilda instanser. De används ofta för hjälpfunktioner, verktygsmetoder eller logik som gäller för hela klassen.

  • Statiska metoder används ofta för operationer som gäller generellt, såsom matematiska beräkningar, datumhantering eller strängformatering;
  • Statiska metoder kan även användas för operationer som involverar själva klassen, såsom att skapa instanser på specifika sätt, hantera klassnivåkonfigurationer eller tillhandahålla klassövergripande dataåtkomst.

Exempel: Statisk hjälpfunktion

Vi tar ett verkligt exempel där en User-klass har en statisk metod för att jämföra två användares ID. Denna metod behöver inte interagera med någon enskild användares data, så den kan vara en statisk metod 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 det här exemplet tillhör den statiska metoden compareIds klassen User och möjliggör jämförelse av ID:n för två User-instanser utan åtkomst till deras individuella egenskaper eller metoder.

Viktiga skillnader mellan statiska och instansmetoder

Exempel från verkligheten: Verktygsklass för applikation

Anta ett scenario där en applikation behöver logga data. En Logger-klass kan ha statiska metoder för att logga meddelanden på olika nivåer (info, varning, fel). Dessa metoder kan nås globalt utan att skapa en instans av loggern.

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 det här exemplet är de statiska metoderna info, warning och error hjälpfunktioner som kan anropas globalt för att logga meddelanden på olika nivåer. Ingen instans av Logger behövs för att använda dessa metoder.

1. Vad är en statisk metod?

2. Hur definierar du en statisk metod i en klass?

question mark

Vad är en statisk metod?

Select the correct answer

question mark

Hur definierar du en statisk metod i en klass?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 12
some-alt