Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Staattisten Metodien Käyttö JavaScriptissä | JavaScript-luokkien ja Perinnän Hallinta
Edistynyt JavaScript-Osaaminen

bookStaattisten Metodien Käyttö JavaScriptissä

Staattiset metodit tarjoavat jaettua toiminnallisuutta luokkatasolla, ja niitä voidaan käyttää ilman olion luomista.

Mitä ovat staattiset metodit?

Ajattele sähköyhtiötä, joka toimittaa sähköä. Yritys itse (luokka) tarjoaa sähkön, mutta sinun (olion) ei tarvitse rakentaa voimalaitosta kotiisi. Sen sijaan käytät yrityksen palvelua (staattinen metodi) suoraan.

Staattisten metodien määrittely ja käyttö

Staattiset metodit määritellään käyttämällä static-avainsanaa. Niitä voidaan kutsua suoraan luokasta, mutta niillä ei ole pääsyä olion ominaisuuksiin tai metodeihin, koska ne toimivat luokkatasolla.

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

Tässä esimerkissä square- ja cube-metodit ovat staattisia, eli ne kuuluvat MathUtils-luokalle ja niitä voidaan kutsua suoraan luokasta. Nämä metodit suorittavat matemaattisia operaatioita ja ovat koko luokan käytettävissä ilman, että niitä tarvitsee liittää mihinkään tiettyyn olioon.

Miksi käyttää staattisia metodeja?

Staattiset metodit ovat hyödyllisiä, kun halutaan tarjota toiminnallisuutta, joka liittyy luokkaan, mutta ei tarvitse olla sidottu yksittäisiin olioihin. Niitä käytetään yleisesti apufunktioina, työkalumetodeina tai logiikkana, joka koskee koko luokkaa laajasti.

  • Staattisia metodeja käytetään usein operaatioihin, jotka koskevat kaikkia, kuten matemaattiset laskelmat, päivämäärien käsittely tai merkkijonojen muotoilu;
  • Staattisia metodeja voidaan käyttää myös luokkaa itseään koskeviin operaatioihin, kuten olioiden luomiseen tietyillä tavoilla, luokkatasoisten asetusten hallintaan tai luokkakohtaiseen tiedonhakuun.

Esimerkki: Staattinen apumetodi

Tarkastellaan käytännön esimerkkiä, jossa User-luokalla on staattinen metodi kahden käyttäjän ID-tunnusten vertailuun. Tämän metodin ei tarvitse käsitellä yksittäisen käyttäjän tietoja, joten se voidaan toteuttaa luokan staattisena metodina.

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

Tässä esimerkissä compareIds-staattinen metodi kuuluu User-luokkaan ja mahdollistaa kahden User-olion ID-tunnusten vertailun ilman tarvetta käyttää niiden yksittäisiä ominaisuuksia tai metodeja.

Keskeiset erot staattisten ja instanssimetodien välillä

Käytännön esimerkki: Sovelluksen apuluokka

Tarkastellaan tilannetta, jossa sovelluksen täytyy kirjata tietoja. Logger-luokalla voi olla staattisia metodeja viestien kirjaamiseen eri tasoilla (info, varoitus, virhe). Näihin metodeihin voidaan päästä käsiksi globaalisti ilman logger-instanssin luomista.

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

Tässä esimerkissä staattiset metodit info, warning, error ja Logger ovat apufunktioita, joita voidaan kutsua globaalisti eri tasoisten viestien kirjaamiseen. Näiden metodien käyttämiseen ei tarvita Logger-luokan oliota.

1. Mikä on staattinen metodi?

2. Miten määritellään staattinen metodi luokassa?

question mark

Mikä on staattinen metodi?

Select the correct answer

question mark

Miten määritellään staattinen metodi luokassa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 12

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookStaattisten Metodien Käyttö JavaScriptissä

Pyyhkäise näyttääksesi valikon

Staattiset metodit tarjoavat jaettua toiminnallisuutta luokkatasolla, ja niitä voidaan käyttää ilman olion luomista.

Mitä ovat staattiset metodit?

Ajattele sähköyhtiötä, joka toimittaa sähköä. Yritys itse (luokka) tarjoaa sähkön, mutta sinun (olion) ei tarvitse rakentaa voimalaitosta kotiisi. Sen sijaan käytät yrityksen palvelua (staattinen metodi) suoraan.

Staattisten metodien määrittely ja käyttö

Staattiset metodit määritellään käyttämällä static-avainsanaa. Niitä voidaan kutsua suoraan luokasta, mutta niillä ei ole pääsyä olion ominaisuuksiin tai metodeihin, koska ne toimivat luokkatasolla.

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

Tässä esimerkissä square- ja cube-metodit ovat staattisia, eli ne kuuluvat MathUtils-luokalle ja niitä voidaan kutsua suoraan luokasta. Nämä metodit suorittavat matemaattisia operaatioita ja ovat koko luokan käytettävissä ilman, että niitä tarvitsee liittää mihinkään tiettyyn olioon.

Miksi käyttää staattisia metodeja?

Staattiset metodit ovat hyödyllisiä, kun halutaan tarjota toiminnallisuutta, joka liittyy luokkaan, mutta ei tarvitse olla sidottu yksittäisiin olioihin. Niitä käytetään yleisesti apufunktioina, työkalumetodeina tai logiikkana, joka koskee koko luokkaa laajasti.

  • Staattisia metodeja käytetään usein operaatioihin, jotka koskevat kaikkia, kuten matemaattiset laskelmat, päivämäärien käsittely tai merkkijonojen muotoilu;
  • Staattisia metodeja voidaan käyttää myös luokkaa itseään koskeviin operaatioihin, kuten olioiden luomiseen tietyillä tavoilla, luokkatasoisten asetusten hallintaan tai luokkakohtaiseen tiedonhakuun.

Esimerkki: Staattinen apumetodi

Tarkastellaan käytännön esimerkkiä, jossa User-luokalla on staattinen metodi kahden käyttäjän ID-tunnusten vertailuun. Tämän metodin ei tarvitse käsitellä yksittäisen käyttäjän tietoja, joten se voidaan toteuttaa luokan staattisena metodina.

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

Tässä esimerkissä compareIds-staattinen metodi kuuluu User-luokkaan ja mahdollistaa kahden User-olion ID-tunnusten vertailun ilman tarvetta käyttää niiden yksittäisiä ominaisuuksia tai metodeja.

Keskeiset erot staattisten ja instanssimetodien välillä

Käytännön esimerkki: Sovelluksen apuluokka

Tarkastellaan tilannetta, jossa sovelluksen täytyy kirjata tietoja. Logger-luokalla voi olla staattisia metodeja viestien kirjaamiseen eri tasoilla (info, varoitus, virhe). Näihin metodeihin voidaan päästä käsiksi globaalisti ilman logger-instanssin luomista.

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

Tässä esimerkissä staattiset metodit info, warning, error ja Logger ovat apufunktioita, joita voidaan kutsua globaalisti eri tasoisten viestien kirjaamiseen. Näiden metodien käyttämiseen ei tarvita Logger-luokan oliota.

1. Mikä on staattinen metodi?

2. Miten määritellään staattinen metodi luokassa?

question mark

Mikä on staattinen metodi?

Select the correct answer

question mark

Miten määritellään staattinen metodi luokassa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 12
some-alt