Menu
Coddy logo textTech

Organizowanie klas w moduły

Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 30 z 56.

Gdy twój projekt rośnie, trzymanie wszystkich klas w jednym pliku staje się nieuporządkowane. Wyobraź sobie 10 klas w jednym pliku — trudno wtedy znaleźć kod i go utrzymywać.

Nauczyliśmy się już, jak organizować kod za pomocą modułów — eksportując i importując funkcje oraz zmienne. W przypadku klas obowiązuje ta sama logika i składnia! Możesz eksportować klasy z jednego pliku i importować je do innego, tak jak robiliśmy to w przypadku funkcji.

Poćwiczmy organizowanie klas w moduły, aby nasz kod był przejrzysty i łatwy w zarządzaniu. 

Na przykład:

Jak to działa:

Plik 1: furniture-base.js (Eksportuj klasę bazową)

export class Furniture {
 constructor(material) {
   this.material = material;
 }
 
 describe() {
   return `${this.material} furniture`;
 }
}

Plik 2: chair.js (Importuj i rozszerz)

import { Furniture } from './furniture-base.js';
export class Chair extends Furniture {
 constructor(material, legs) {
   super(material);
   this.legs = legs;
 }
 
 sit() {
   return "Sitting comfortably";
 }
}

Plik 3: main.js (Użyj wszystkiego razem)

import { Chair } from './chair.js';
import { Table } from './table.js';
const myChair = new Chair("wood", 4);
const myTable = new Table("glass", "round");
console.log(myChair.describe());  // "wood furniture"
console.log(myTable.describe());  // "glass furniture"
challenge icon

Wyzwanie

Masz system sklepu elektronicznego zorganizowany w moduły. Klasy Laptop i Smartphone są tworzone w osobnych plikach, ale trzeba udostępnić je innym plikom.

Twoje zadanie:

  1. Wyeksportuj klasy (użyj eksportów nazwanych — nie domyślnych):
    • W pliku laptop.js: Dodaj export, aby udostępnić klasę Laptop
    • W pliku smartphone.js: Dodaj export, aby udostępnić klasę Smartphone
  2. Zaimportuj klasy w pliku main.js:
    • Zaimportuj klasę Laptop z pliku laptop.js
    • Zaimportuj klasę Smartphone z pliku smartphone.js

Spróbuj swoich sił

// TODO: Zaimportuj klasę Laptop z laptop.js

// TODO: Zaimportuj klasę Smartphone z smartphone.js


const myLaptop = new Laptop();
const myPhone = new Smartphone();

console.log(myLaptop.type);      // Wyświetla: "laptop"
console.log(myPhone.type);       // Wyświetla: "smartphone"
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator JavaScript online