Sobes.tech
Middle

JavaScriptтеги модуль үлгісин эмне экенин жана ал кайда колдонулушу керектигин түшүндүрүңүз.

sobes.tech AI

AIден жооп

Модулдун үлгүсү кодду инкапсуляциялоого мүмкүндүк берет, ачык жана жекелик интерфейстерди аныктоо аркылуу. Бул IIFE (дароо чакырылган функциялык экспрессиялар) же ES Modules синтаксиси колдонуу менен жекелик көрүнүш аймагын түзүү аркылуу жетишилет:

Колдонулат:

  • Инкапсуляция: Ички ишке ашырууну жашырып, керектүү ачык 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 Modules колдонуу менен мисал:

// module.js
// Жекелик өзгөрмө (экспорттолбойт)
const privateVariable = 'Мен жекеликмин ES Module ичинде!';

// Жекелик функция (экспорттолбойт)
const privateMethod = () => {
  console.log(privateVariable);
};

// Ачык функция (экспорттолуп жатат)
export const publicMethod = () => {
  console.log('Бул ачык функция ES Module ичинде.');
  privateMethod();
};
// main.js
import { publicMethod } from './module.js';

publicMethod(); // "Бул ачык функция ES Module ичинде." жана "Мен жекеликмин ES Module ичинде!" чыгат