Middle
Paaiškinkite, kas yra modulio modelis JavaScript'e ir kur jis taikomas.
sobes.tech AI
Atsakymas iš AI
Moduolių šablonas leidžia inkapsuliuoti kodą, apibrėžiant viešą ir privačią sąsają. Tai pasiekiama naudojant tiesiogiai kviečiamas funkcines išraiškas (IIFE) arba ES modulų sintaksę, sukuriant privačią matomumo sritį:
Naudojama:
- Inkapuliacija: Slėpia vidinę įgyvendinimą, teikdama tik būtiną viešą API.
- Apsauga nuo globalios srities užteršimo: Kintamieji ir funkcijos lieka modulyje, vietiniai.
- Kodo organizavimas: Suskirsto programą į loginės blokų, palengvindamas supratimą ir palaikymą.
- Kodo pakartotinis naudojimas: Moduliai gali būti importuojami ir naudojami skirtingose programos dalyse.
Pavyzdys naudojant IIFE:
// Sukuriama privačios matomumo srities
const myModule = (() => {
// Privačios kintamasis
let privateVariable = 'Aš esu privačias!';
// Privačios funkcijos
const privateMethod = () => {
console.log(privateVariable);
};
// Viešos funkcijos
const publicMethod = () => {
console.log('Tai vieša funkcija.');
privateMethod(); // prieiga prie privačios funkcijos
};
// Grąžina tik viešus narius
return {
publicMethod: publicMethod
};
})();
// Naudojimas viešojo sąsajos
myModule.publicMethod(); // Išves "Tai vieša funkcija." ir "Aš esu privačias!"
// myModule.privateVariable; // Klaida - neprieinama
// myModule.privateMethod(); // Klaida - neprieinama
Pavyzdys naudojant ES modulius:
// module.js
// Privačios kintamosios (neeksportuojamos)
const privateVariable = 'Aš esu privačias ES modulyje!';
// Privačios funkcijos (neeksportuojamos)
const privateMethod = () => {
console.log(privateVariable);
};
// Viešos funkcijos (eksportuojamos)
export const publicMethod = () => {
console.log('Tai vieša funkcija ES modulyje.');
privateMethod();
};
// main.js
import { publicMethod } from './module.js';
publicMethod(); // Išves "Tai vieša funkcija ES modulyje." ir "Aš esu privačias ES modulyje!"