Sobes.tech
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ü:

  1. Yığma: Modulun mənbə kodu parse edilir, idxal və ixraclar müəyyən edilir. Modul qabığı yaradılır.
  2. 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.
  3. Ə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.
  4. İ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ə