Middle
ES Modules-də modullar necə işləyir?
sobes.tech Süni İntellekt
AI-dan cavab
ES Modullərdə modulların idxal və ixraclarına əsaslanan statik analiz əsasında işləyir. Brauzer və ya icra mühiti JavaScript fayllarını parse edir, kodu icra etməzdən əvvəl modullar arasındakı asılılıqları müəyyən edir və asılılıq qrafiki yaradır.
İş prinsipləri:
- Statik analiz: İdxal və ixraclar kod icra edilməzdən əvvəl müəyyən edilir, bu da yükləməni optimallaşdırmağa və səhvləri erkən aşkar etməyə imkan verir.
- Tək-tək əlaqələndirmə: Hər bir idxal başqa bir moduldakı konkret ixraca bağlıdır.
- Yeganə nümunə: Modul ilk idxalda yalnız bir dəfə icra olunur. Bütün sonrakı idxallar həmin nümunəyə istinad edir.
Modulun həyat dövrü:
- Yığma: Modulun mənbə kodu parse edilir, idxal və ixraclar müəyyən edilir. Modul qabığı yaradılır.
- Yükləmə: Bütün idxal edilən modullar yüklənir. Əgər asılılıq keşdə yoxdursa, şəbəkəyə və ya fayl sisteminə sorğu göndərilir.
- Əlaqələndirmə: İdxal və ixraclar əlaqələndirilir. İdxal edilən modullardan dəyişənlər və funksiyalar istifadə üçün əlçatan olur. Əgər idxal həll edilə bilməzsə, xəta atılır.
- İcrası: Modulun kodu icra olunur. Bütün ixrac edilən dəyərlər idxal edən modullara əlçatan olur.
Nümunələr:
// moduleA.js
export const name = 'Alice';
export function sayHello() {
console.log(`Hello, ${name}!`);
}
// moduleB.js
import { name, sayHello } from './moduleA.js';
console.log(name); // Çıxış: Alice
sayHello(); // Çıxış: Hello, Alice!
CommonJS-dən fərqlər:
| Xüsusiyyət | ES Modulləri | CommonJS |
|---|---|---|
| Əlaqələndirmə | Statik | Dinamik |
| Yükləmə | Asinxron (brauzerdə) | Sinxron (standart) |
| İxrac | export açar sözü |
module.exports |
| İdxal | import açar sözü |
require funksiyası |
| İstifadə | Brauzer və Node.js-də (eksperimental) | Node.js-də |