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 модулу!"