Middle
Vysvetlite, čo je vzor modulov v JavaScripte a kde sa používa.
sobes.tech AI
Odpoveď od AI
Vzor modulu umožňuje enkapsuláciu kódu definovaním verejného a súkromného rozhrania. Toho sa dosahuje vytvorením súkromného rozsahu pomocou výrazov funkcie, ktoré sú ihneď volané (IIFE), alebo syntaxe ES modulov.
Použitie:
- Enkapsulácia: Skrýva vnútornú implementáciu a poskytuje iba potrebné verejné API.
- Prevencia znečistenia globálneho priestoru: Premenné a funkcie zostávajú lokálne v rámci modulu.
- Organizácia kódu: Rozdeľuje aplikáciu na logické bloky, čo uľahčuje pochopenie a údržbu.
- Opätovné použitie kódu: Moduly môžu byť importované a používané v rôznych častiach aplikácie.
Príklad s použitím IIFE:
// Vytvoríme súkromný rozsah
const myModule = (() => {
// Súkromná premenná
let privateVariable = 'Som súkromný!';
// Súkromná funkcia
const privateMethod = () => {
console.log(privateVariable);
};
// Verejná funkcia
const publicMethod = () => {
console.log('Toto je verejná funkcia.');
privateMethod(); // Prístup ku súkromnej funkcii
};
// Vraciame iba verejné členy
return {
publicMethod: publicMethod
};
})();
// Použitie verejného rozhrania
myModule.publicMethod(); // Vypíše "Toto je verejná funkcia." a "Som súkromný!"
// myModule.privateVariable; // Chyba - nedostupné
// myModule.privateMethod(); // Chyba - nedostupné
Príklad s použitím ES modulov:
// module.js
// Súkromná premenná (neexportovaná)
const privateVariable = 'Som súkromný v ES module!';
// Súkromná funkcia (neexportovaná)
const privateMethod = () => {
console.log(privateVariable);
};
// Verejná funkcia (exportovaná)
export const publicMethod = () => {
console.log('Toto je verejná funkcia v ES module.');
privateMethod();
};
// main.js
import { publicMethod } from './module.js';
publicMethod(); // Vypíše "Toto je verejná funkcia v ES module." a "Som súkromný v ES module!"