Metodien Määrittely JavaScript-luokissa
Nyt kun tiedämme, miten ominaisuuksia lisätään konstruktorin avulla, tarkastellaan, miten metodeja lisätään luokkaan.
Luokkametodien määrittely ja käyttö
Nämä metodit toimivat tyypillisesti olion ominaisuuksilla ja tarjoavat tavan käsitellä sen tietoja.
Luokkametodin määrittämiseksi määrittele funktio luokan sisälle ilman function-avainsanaa.
class Animal {
constructor(name, type) {
this.name = name;
this.type = type;
}
// Class method
getInfo() {
return `${this.name} is a ${this.type} animal.`;
}
}
Tässä esimerkissä getInfo on Animal-luokan metodi. Mikä tahansa Animal-luokan olio voi kutsua tätä metodia saadakseen tietoa kyseisestä oliosta.
Miten metodit liitetään luokan olioihin
Kun luokan olio luodaan, luokan sisällä määritellyt metodit tulevat automaattisesti kyseisen olion käyttöön. Nämä metodit voivat käyttää ja muokata olion ominaisuuksia this-avainsanan avulla, joka viittaa nykyiseen olioon.
Ajattele metodeja työkaluina, jotka jokainen olio (instanssi) kantaa mukanaan. Jokaisella oliolla on omat tietonsa (ominaisuudet), mutta ne jakavat samat työkalut (metodit) näiden tietojen käsittelyyn.
Tarkastellaan esimerkkiä:
1234567891011121314151617class Animal { constructor(name, type) { this.name = name; this.type = type; } // Class method getInfo() { return `${this.name} is a ${this.type} animal.`; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. const pig = new Animal('Pig', 'Domestic'); console.log(pig.getInfo()); // Output: Pig is a Domestic animal.
Tässä esimerkissä sekä lion että pig ovat Animal-luokan ilmentymiä. getInfo-metodi on molempien käytettävissä, ja se palauttaa erilaisia tuloksia riippuen siitä, minkä ilmentymän ominaisuuksia käytetään. Tämä havainnollistaa, kuinka metodit jaetaan ilmentymien kesken, mutta toimivat kunkin ilmentymän omilla tiedoilla.
Miksi käyttää luokkametodeja?
Luokkametodit määrittelevät olion erityiset toiminnot. Ne tekevät koodista modulaarisempaa, helpommin ylläpidettävää ja selkeyttävät vastuiden jakoa. Sen sijaan, että olion ominaisuuksia muokattaisiin suoraan, luokkametodit tarjoavat hallitun tavan käsitellä ja muuttaa olion tietoja.
Esimerkki metodista, joka muuttaa olion tilaa:
1234567891011121314151617181920class Animal { constructor(name, type) { this.name = name; this.type = type; } getInfo() { return `${this.name} is a ${this.type} animal.`; } changeType(newType) { this.type = newType; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. lion.changeType('Domestic'); console.log(lion.getInfo()); // Output: Lion is a Domestic animal.
Tässä esimerkissä changeType-metodi mahdollistaa objektin type-ominaisuuden päivittämisen. Tämä osoittaa, kuinka metodit voivat kapseloida logiikkaa, joka vaikuttaa suoraan objektin tilaan.
1. Mikä on luokan metodi?
2. Kuinka määrittelet luokassa metodin nimeltä speak, jota instanssi voi käyttää?
3. Mitä seuraava koodi tulostaa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain how to add more methods to a class?
What is the difference between class methods and static methods?
Can you show an example of using multiple methods in a class?
Awesome!
Completion rate improved to 2.22
Metodien Määrittely JavaScript-luokissa
Pyyhkäise näyttääksesi valikon
Nyt kun tiedämme, miten ominaisuuksia lisätään konstruktorin avulla, tarkastellaan, miten metodeja lisätään luokkaan.
Luokkametodien määrittely ja käyttö
Nämä metodit toimivat tyypillisesti olion ominaisuuksilla ja tarjoavat tavan käsitellä sen tietoja.
Luokkametodin määrittämiseksi määrittele funktio luokan sisälle ilman function-avainsanaa.
class Animal {
constructor(name, type) {
this.name = name;
this.type = type;
}
// Class method
getInfo() {
return `${this.name} is a ${this.type} animal.`;
}
}
Tässä esimerkissä getInfo on Animal-luokan metodi. Mikä tahansa Animal-luokan olio voi kutsua tätä metodia saadakseen tietoa kyseisestä oliosta.
Miten metodit liitetään luokan olioihin
Kun luokan olio luodaan, luokan sisällä määritellyt metodit tulevat automaattisesti kyseisen olion käyttöön. Nämä metodit voivat käyttää ja muokata olion ominaisuuksia this-avainsanan avulla, joka viittaa nykyiseen olioon.
Ajattele metodeja työkaluina, jotka jokainen olio (instanssi) kantaa mukanaan. Jokaisella oliolla on omat tietonsa (ominaisuudet), mutta ne jakavat samat työkalut (metodit) näiden tietojen käsittelyyn.
Tarkastellaan esimerkkiä:
1234567891011121314151617class Animal { constructor(name, type) { this.name = name; this.type = type; } // Class method getInfo() { return `${this.name} is a ${this.type} animal.`; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. const pig = new Animal('Pig', 'Domestic'); console.log(pig.getInfo()); // Output: Pig is a Domestic animal.
Tässä esimerkissä sekä lion että pig ovat Animal-luokan ilmentymiä. getInfo-metodi on molempien käytettävissä, ja se palauttaa erilaisia tuloksia riippuen siitä, minkä ilmentymän ominaisuuksia käytetään. Tämä havainnollistaa, kuinka metodit jaetaan ilmentymien kesken, mutta toimivat kunkin ilmentymän omilla tiedoilla.
Miksi käyttää luokkametodeja?
Luokkametodit määrittelevät olion erityiset toiminnot. Ne tekevät koodista modulaarisempaa, helpommin ylläpidettävää ja selkeyttävät vastuiden jakoa. Sen sijaan, että olion ominaisuuksia muokattaisiin suoraan, luokkametodit tarjoavat hallitun tavan käsitellä ja muuttaa olion tietoja.
Esimerkki metodista, joka muuttaa olion tilaa:
1234567891011121314151617181920class Animal { constructor(name, type) { this.name = name; this.type = type; } getInfo() { return `${this.name} is a ${this.type} animal.`; } changeType(newType) { this.type = newType; } } const lion = new Animal('Lion', 'Wild'); console.log(lion.getInfo()); // Output: Lion is a Wild animal. lion.changeType('Domestic'); console.log(lion.getInfo()); // Output: Lion is a Domestic animal.
Tässä esimerkissä changeType-metodi mahdollistaa objektin type-ominaisuuden päivittämisen. Tämä osoittaa, kuinka metodit voivat kapseloida logiikkaa, joka vaikuttaa suoraan objektin tilaan.
1. Mikä on luokan metodi?
2. Kuinka määrittelet luokassa metodin nimeltä speak, jota instanssi voi käyttää?
3. Mitä seuraava koodi tulostaa?
Kiitos palautteestasi!