Middle
Wyjaśnij, czym jest wzorzec modułów w JavaScript i gdzie jest stosowany.
sobes.tech AI
Odpowiedź od AI
Wzorzec modułów pozwala na enkapsulację kodu, definiując interfejs publiczny i prywatny. Osiąga się to poprzez tworzenie prywatnego zakresu za pomocą wyrażeń funkcji natychmiast wywoływanych (IIFE) lub składni modułów ES.
Stosuje się go do:
- Enkapsulacji: Ukrywa wewnętrzną implementację, zapewniając tylko potrzebny publiczny API.
- Zapobiegania zanieczyszczeniu globalnego zakresu: Zmienne i funkcje pozostają lokalne w module.
- Organizacji kodu: Dzieli aplikację na logiczne bloki, ułatwiając zrozumienie i utrzymanie.
- Ponownego użycia kodu: Moduły mogą być importowane i używane w różnych częściach aplikacji.
Przykład z użyciem IIFE:
// Tworzymy prywatny zakres
const myModule = (() => {
// Prywatna zmienna
let privateVariable = 'Jestem prywatny!';
// Prywatna funkcja
const privateMethod = () => {
console.log(privateVariable);
};
// Publiczna funkcja
const publicMethod = () => {
console.log('To jest funkcja publiczna.');
privateMethod(); // Dostęp do prywatnej funkcji
};
// Zwracamy tylko elementy publiczne
return {
publicMethod: publicMethod
};
})();
// Użycie interfejsu publicznego
myModule.publicMethod(); // Wyświetli "To jest funkcja publiczna." i "Jestem prywatny!"
// myModule.privateVariable; // Błąd - niedostępne
// myModule.privateMethod(); // Błąd - niedostępne
Przykład z użyciem modułów ES:
// module.js
// Prywatna zmienna (nie eksportowana)
const privateVariable = 'Jestem prywatny w module ES!';
// Prywatna funkcja (nie eksportowana)
const privateMethod = () => {
console.log(privateVariable);
};
// Publiczna funkcja (eksportowana)
export const publicMethod = () => {
console.log('To jest funkcja publiczna w module ES.');
privateMethod();
};
// main.js
import { publicMethod } from './module.js';
publicMethod(); // Wyświetli "To jest funkcja publiczna w module ES." i "Jestem prywatny w module ES!"