Middle
Vysvětlete, co je to vzor modulů v JavaScriptu a kde se používá.
sobes.tech AI
Odpověď od AI
Vzor modulů umožňuje enkapsulaci kódu definováním veřejného a soukromého rozhraní. Toho je dosaženo vytvořením soukromého rozsahu pomocí výrazů funkce, které jsou ihned volány (IIFE), nebo syntaxe modulů ES.
Použití:
- Enkapsulace: Skrývá interní implementaci a poskytuje pouze potřebné veřejné API.
- Prevence znečištění globálního prostoru: Proměnné a funkce zůstávají lokální uvnitř modulu.
- Organizace kódu: Rozděluje aplikaci na logické bloky, což usnadňuje pochopení a údržbu.
- Opětovné použití kódu: Moduly lze importovat a používat v různých částech aplikace.
Příklad s použitím IIFE:
// Vytvoříme soukromý rozsah
const myModule = (() => {
// Soukromá proměnná
let privateVariable = 'Jsem soukromý!';
// Soukromá funkce
const privateMethod = () => {
console.log(privateVariable);
};
// Veřejná funkce
const publicMethod = () => {
console.log('Toto je veřejná funkce.');
privateMethod(); // Přístup k soukromé funkci
};
// Vrací pouze veřejné členy
return {
publicMethod: publicMethod
};
})();
// Použití veřejného rozhraní
myModule.publicMethod(); // Vypíše "Toto je veřejná funkce." a "Jsem soukromý!"
// myModule.privateVariable; // Chyba - nedostupné
// myModule.privateMethod(); // Chyba - nedostupné
Příklad s použitím modulů ES:
// module.js
// Soukromá proměnná (neexportovaná)
const privateVariable = 'Jsem soukromý v ES modulu!';
// Soukromá funkce (neexportovaná)
const privateMethod = () => {
console.log(privateVariable);
};
// Veřejná funkce (exportovaná)
export const publicMethod = () => {
console.log('Toto je veřejná funkce v ES modulu.');
privateMethod();
};
// main.js
import { publicMethod } from './module.js';
publicMethod(); // Vypíše "Toto je veřejná funkce v ES modulu." a "Jsem soukromý v ES modulu!"