Sobes.tech
Middle

გთხოვთ, ახსენით, რა არის მოდულების ნიმუში JavaScript-ში და სად გამოიყენება.

sobes.tech AI

პასუხი AI-სგან

პატერნი მოდულების საშუალებას აძლევს კოდის ინკაფსულაციას, საჯარო და პირადი ინტერფეისის განსაზღვრით. ეს მიღწეულია პირდაპირი გამოძახების ფუნქციონალური გამოთქმების (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 მოდულში!"