Skip to content

JavaScript Modul Nomlar Makoni (Namespace)

Modul nomlar makoni obyekti (namespace object) — bu modul tomonidan eksport qilingan barcha qiymatlarni o'z ichiga olgan o'zgartirib bo'lmaydigan (immutable) obyektdir.


Namespace yaratish

Namespace obyekti quyidagi sintaksis yordamida yaratiladi:

js
import * as name from 'module'

Nomlar makoni qanday ishlaydi?

Loyihangizda juda ko'p yordamchi funksiyalar bo'lsa, ularni bitta-bitta import qilish uzoq vaqt olishi mumkin. * as sintaksisi barcha eksportlarni bitta obyektga yig'ib beradi.

Misol:

js
// math.js
export const PI = 3.14
export function add(a, b) {
  return a + b
}
export function multiply(a, b) {
  return a * b
}

// main.js
import * as MathUtils from './math.js'

console.log(MathUtils.PI) // 3.14
console.log(MathUtils.add(2, 3)) // 5

Namespace Obyektining xususiyatlari

XususiyatTavsifi
NamespaceModuldagi barcha eksportlar yig'ilgan maxsus obyekt.
Faqat o'qish uchunEksport qilingan qiymatlarni o'qish mumkin, lekin o'zgartirib bo'lmaydi.
Live BindingAgar modul ichida qiymat o'zgarsa, namespace obyektida ham u avtomatik yangilanadi.
PrototypeNamespace obyekti oddiy obyekt bo'lib, uning prototipi yo'q (null).

Modul Namespace-ni qayta eksport qilish

Ba'zida bitta moduldan boshqa bir modulning barcha elementlarini qayta eksport qilish (re-export) kerak bo'ladi. Bu loyihani tartiblash uchun ishlatiladigan "Aggregator" modullarida qo'llaniladi.

Sintaksislar:

js
// 1. Hammasini alohida-alohida re-export qilish
export * from './math.js'

// 2. Hammasini bitta nom ostida re-export qilish (ES2020)
export * as MathUtils from './math.js'

Aggregator Script nima?

Bu faqat boshqa modullardan elementlarni import qilib va darhol re-export qiladigan fayl. Bu loyihaning asosiy qismida yuzlab import qatorlari bo'lishini oldini oladi.