Sobes.tech
Middle

Objasnite šta je obrazac modula u JavaScript-u i gde se primenjuje.

sobes.tech АИ

Одговор од АИ

Шаблон модула омогућава енкапсулацију кода дефинисањем јавног и приватног интерфејса. Ово се постиже креирањем приватне области коришћењем израза функције који се одмах позивају (IIFE) или синтаксом ES модула.

Примена:

  • Енкапсулација: Скрива унутрашњу имплементацију, пружајући само потребни јавни API.
  • Превенција загађења глобалне области: Променљиве и функције остају локалне унутар модула.
  • Организација кода: Делује апликацију на логичке блокове, олакшавајући разумевање и одржавање.
  • Поновна употреба кода: Модуле могу бити увезени и коришћени у различитим деловима апликације.

Пример са коришћењем IIFE:

// Креирамо приватну област
const myModule = (() => {
  // Приватна променљива
  let privateVariable = 'Ја сам приватан!';

  // Приватна функција
  const privateMethod = () => {
    console.log(privateVariable);
  };

  // Јавна функција
  const publicMethod = () => {
    console.log('Ово је јавна функција.');
    privateMethod(); // приступ приватној функцији
  };

  // Враћамо само јавне чланове
  return {
    publicMethod: publicMethod
  };
})();

// Коришћење јавног интерфејса
myModule.publicMethod(); // Исписа "Ово је јавна функција." и "Ја сам приватан!"
// myModule.privateVariable; // Грешка - недоступно
// myModule.privateMethod(); // Грешка - недоступно

Пример са коришћењем ES модула:

// module.js
// Приватна променљива (неекспортирана)
const privateVariable = 'Ја сам приватан у ES модулу!';

// Приватна функција (неекспортирана)
const privateMethod = () => {
  console.log(privateVariable);
};

// Јавна функција (експортирана)
export const publicMethod = () => {
  console.log('Ово је јавна функција у ES модулу.');
  privateMethod();
};
// main.js
import { publicMethod } from './module.js';

publicMethod(); // Исписа "Ово је јавна функција у ES модулу." и "Ја сам приватан у ES модулу!"