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

bookDefiniera 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:

1234567891011121314151617
class 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.
copy

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:

1234567891011121314151617181920
class 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.
copy

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?

question mark

Vad är en klassmetod?

Select the correct answer

question mark

Hur definierar du en metod kallad speak i en klass som en instans kan använda?

Select the correct answer

question mark

Vad skriver följande kod ut?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 4

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:

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

bookDefiniera 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:

1234567891011121314151617
class 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.
copy

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:

1234567891011121314151617181920
class 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.
copy

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?

question mark

Vad är en klassmetod?

Select the correct answer

question mark

Hur definierar du en metod kallad speak i en klass som en instans kan använda?

Select the correct answer

question mark

Vad skriver följande kod ut?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 4
some-alt