Definiera Metoder i JavaScript-Klasser
Nu när vi vet hur man lägger till egenskaper med hjälp av konstruktorn, ska vi utforska hur man lägger till metoder i en klass.
Definiera och använda klassmetoder
Dessa metoder arbetar vanligtvis med objektets egenskaper och ger ett sätt att interagera med dess data.
För att definiera en klassmetod deklareras helt enkelt en funktion inuti klassen utan att använda nyckelordet function.
class Animal {
constructor(name, type) {
this.name = name;
this.type = type;
}
// Class method
getInfo() {
return `${this.name} is a ${this.type} animal.`;
}
}
I det här exemplet är getInfo en metod i klassen Animal. Varje instans av Animal kan anropa denna metod för att hämta information om just den instansen.
Hur metoder associeras med instanser av en klass
När du skapar en instans av en klass blir de metoder som definierats i klassen automatiskt tillgängliga för den instansen. Dessa metoder kan komma åt och manipulera instansens egenskaper med hjälp av nyckelordet this, som refererar till det aktuella objektet.
Tänk på metoder som verktyg som varje objekt (instans) har med sig. Varje objekt har sina egna data (egenskaper), men de delar samma verktyg (metoder) för att interagera med dessa data.
Låt oss titta på exemplet:
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.
I det här exemplet är både lion och pig instanser av klassen Animal. Metoden getInfo är tillgänglig för båda och returnerar olika resultat beroende på egenskaperna hos den specifika instansen den anropas på. Detta visar hur metoder delas mellan instanser men arbetar med data som är specifik för varje enskild instans.
Varför använda klassmetoder?
Klassmetoder definierar beteenden som är specifika för objektet. De gör koden mer modulär, underhållbar och skapar en tydlig uppdelning av ansvar. Istället för att direkt manipulera objektets egenskaper erbjuder klassmetoder ett kontrollerat sätt att interagera med och ändra objektets data.
Exempel med en metod som ändrar objektets tillstånd:
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.
I det här exemplet tillåter metoden changeType att uppdatera objektets egenskap type. Detta visar hur metoder kan kapsla in logik som direkt påverkar objektets tillstånd.
1. Vad är en klassmetod?
2. Hur definierar du en metod kallad speak i en klass som en instans kan använda?
3. Vad skriver följande kod ut?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Definiera Metoder i JavaScript-Klasser
Svep för att visa menyn
Nu när vi vet hur man lägger till egenskaper med hjälp av konstruktorn, ska vi utforska hur man lägger till metoder i en klass.
Definiera och använda klassmetoder
Dessa metoder arbetar vanligtvis med objektets egenskaper och ger ett sätt att interagera med dess data.
För att definiera en klassmetod deklareras helt enkelt en funktion inuti klassen utan att använda nyckelordet function.
class Animal {
constructor(name, type) {
this.name = name;
this.type = type;
}
// Class method
getInfo() {
return `${this.name} is a ${this.type} animal.`;
}
}
I det här exemplet är getInfo en metod i klassen Animal. Varje instans av Animal kan anropa denna metod för att hämta information om just den instansen.
Hur metoder associeras med instanser av en klass
När du skapar en instans av en klass blir de metoder som definierats i klassen automatiskt tillgängliga för den instansen. Dessa metoder kan komma åt och manipulera instansens egenskaper med hjälp av nyckelordet this, som refererar till det aktuella objektet.
Tänk på metoder som verktyg som varje objekt (instans) har med sig. Varje objekt har sina egna data (egenskaper), men de delar samma verktyg (metoder) för att interagera med dessa data.
Låt oss titta på exemplet:
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.
I det här exemplet är både lion och pig instanser av klassen Animal. Metoden getInfo är tillgänglig för båda och returnerar olika resultat beroende på egenskaperna hos den specifika instansen den anropas på. Detta visar hur metoder delas mellan instanser men arbetar med data som är specifik för varje enskild instans.
Varför använda klassmetoder?
Klassmetoder definierar beteenden som är specifika för objektet. De gör koden mer modulär, underhållbar och skapar en tydlig uppdelning av ansvar. Istället för att direkt manipulera objektets egenskaper erbjuder klassmetoder ett kontrollerat sätt att interagera med och ändra objektets data.
Exempel med en metod som ändrar objektets tillstånd:
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.
I det här exemplet tillåter metoden changeType att uppdatera objektets egenskap type. Detta visar hur metoder kan kapsla in logik som direkt påverkar objektets tillstånd.
1. Vad är en klassmetod?
2. Hur definierar du en metod kallad speak i en klass som en instans kan använda?
3. Vad skriver följande kod ut?
Tack för dina kommentarer!