Klasy w JavaScript

Klasy w JavaScript ułatwiają modelowanie obiektów z realnego świata przez zapewnienie zrozumiałej i uporządkowanej składni do tworzenia obiektów i zarządzania dziedziczeniem. Używając klas, możemy łatwo zdefiniować szablony dla nowych obiektów, takich jak komputery. Klasy te mogą również korzystać z dziedziczenia do rozszerzania i modyfikowania zachowań bazowych.

Definiowanie klasy bazowej

Zacznijmy od zdefiniowania klasy Computer, która będzie naszą klasą bazową. Ta klasa będzie zawierać podstawowe właściwości wspólne dla wszystkich komputerów, takie jak marka, model i rok produkcji.

class Computer {
    constructor(brand, model, year) {
        this.brand = brand;
        this.model = model;
        this.year = year;
    }

    displayDetails() {
        console.log(`Marka: ${this.brand}, Model: ${this.model}, Rok: ${this.year}`);
    }
}

Tworzenie instancji klasy

Teraz możemy stworzyć instancję naszej klasy Computer, reprezentującą konkretny komputer.

let myComputer = new Computer("Dell", "XPS 15", 2021);
myComputer.displayDetails(); // Marka: Dell, Model: XPS 15, Rok: 2021

Dziedziczenie i rozszerzanie klasy

Załóżmy, że chcemy teraz rozróżnić komputery stacjonarne od laptopów. Możemy stworzyć dwie klasy, które dziedziczą z klasy Computer: Desktop i Laptop, dodając specyficzne dla nich właściwości lub metody.

class Laptop extends Computer {
    constructor(brand, model, year, batteryLife) {
        super(brand, model, year); // Wywołanie konstruktora klasy bazowej
        this.batteryLife = batteryLife;
    }

    displayBatteryLife() {
        console.log(`Żywotność baterii: ${this.batteryLife} godzin`);
    }
}

let myLaptop = new Laptop("Apple", "MacBook Pro", 2020, 10);
myLaptop.displayDetails(); // Marka: Apple, Model: MacBook Pro, Rok: 2020
myLaptop.displayBatteryLife(); // Żywotność baterii: 10 godzin

Metody statyczne

Podobnie jak w przypadku klas dotyczących samochodów, możemy dodawać metody statyczne do naszych klas komputerowych, które wykonują operacje ogólne, niezwiązane z konkretnymi instancjami.

class ComputerUtils {
    static compareByYear(computerA, computerB) {
        return computerA.year - computerB.year;
    }
}

let olderComputer = new Computer("HP", "Pavilion", 2018);
let newerComputer = new Computer("Lenovo", "ThinkPad", 2022);
console.log(ComputerUtils.compareByYear(olderComputer, newerComputer)); // -4

Podsumowanie

Klasy w JavaScript zapewniają potężne i elastyczne narzędzia do modelowania obiektów. Przykład z komputerami demonstruje, jak łatwo możemy zdefiniować różne typy komputerów i zarządzać nimi przy użyciu dziedziczenia i metod statycznych. Wykorzystanie klas w projektach JavaScript sprawia, że kod jest bardziej zorganizowany, czytelny i łatwiejszy do utrzymania.

Jeżeli zależy Tobie na szybszej nauce polecam mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

 

 

 

 

 

Scroll to Top