Sobes.tech
Middle

Selgitage, mis on JavaScripti moodulimuster ja kus see rakendub.

sobes.tech AI

Vastus AI-lt

Moodulite muster võimaldab inkapsuleerida koodi, määrates avaliku ja privaatse liidese. Seda saavutatakse otse kutsutavate funktsioonide (IIFE) või ES moodulite süntaksi kasutamisega, luues privaatse nähtavusala:

Kasutus:

  • Inkapulatsioon: Peidab sisemise teostuse, pakkudes ainult vajaliku avaliku API.
  • Globaalset ala saastumise vältimine: Muutujad ja funktsioonid jäävad mooduli sisse, lokaalselt.
  • Koodi organiseerimine: Jagab rakenduse loogilisteks plokkideks, lihtsustades mõistmist ja hooldust.
  • Koodi taaskasutus: Mooduleid saab importida ja kasutada erinevates osades.

Näide IIFE kasutamisest:

// Loome privaatse nähtavusala
const myModule = (() => {
  // Privaatne muutuja
  let privateVariable = 'Ma olen privaatne!';

  // Privaatne funktsioon
  const privateMethod = () => {
    console.log(privateVariable);
  };

  // Avalik funktsioon
  const publicMethod = () => {
    console.log('See on avalik funktsioon.');
    privateMethod(); // ligipääs privaatsele funktsioonile
  };

  // Tagastame ainult avalikud liikmed
  return {
    publicMethod: publicMethod
  };
})();

// Kasutame avalikku liidest
myModule.publicMethod(); // Kuvab "See on avalik funktsioon." ja "Ma olen privaatne!"
// myModule.privateVariable; // viga - pole saadaval
// myModule.privateMethod(); // viga - pole saadaval

Näide ES moodulite kasutamisest:

// module.js
// Privaatne muutuja (eksportimata)
const privateVariable = 'Ma olen privaatne ES moodulis!';

// Privaatne funktsioon (eksportimata)
const privateMethod = () => {
  console.log(privateVariable);
};

// Avalik funktsioon (eksportitud)
export const publicMethod = () => {
  console.log('See on avalik ES moodulis.');
  privateMethod();
};
// main.js
import { publicMethod } from './module.js';

publicMethod(); // Kuvab "See on avalik ES moodulis." ja "Ma olen privaatne ES moodulis!"