Sobes.tech
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!"