WeakMap()
WeakMap() konstruktori
WeakMap() konstruktori WeakMap obyektlarini yaratadi.
WeakMap kalit-qiymat juftliklarini saqlaydi.
Map obyektlaridan farqli ravishda, WeakMap kalitlari obyekt bo‘lishi shart.
WeakMap kalitlari kuchsiz (weak) havola orqali saqlanadi va boshqa joyda ishlatilmay qolganda avtomatik ravishda olib tashlanishi mumkin.
Sintaksis
new WeakMap()
new WeakMap(iterable)
Parametrlar
| Parametr | Tavsif |
|---|---|
| iterable | Ixtiyoriy. Kalit-qiymat juftliklarini o‘z ichiga olgan iteratsiya qilinadigan obyekt. |
Qaytariladigan qiymat
| Chaqiruv | Qaytaradi |
|---|---|
new WeakMap() |
WeakMap obyekti |
new WeakMap(iterable) |
Yozuvlar bilan to‘ldirilgan WeakMap obyekti |
WeakMap yaratish
Misol
const wm = new WeakMap();
Faqat obyekt kalitlar
WeakMap kalitlari obyekt bo‘lishi shart.
To‘g‘ri
const person = {};
const wm = new WeakMap();
wm.set(person, "John");
Noto‘g‘ri
const wm = new WeakMap();
wm.set("name", "John"); // Error
WeakMap va Map
| WeakMap | Map |
|---|---|
| Kalitlar obyekt bo‘lishi shart | Kalitlar istalgan qiymat bo‘lishi mumkin |
| Iteratsiya qilinmaydi | Iteratsiya qilinadimi |
| size xususiyati yo‘q | size xususiyatiga ega |
| Yozuvlar avtomatik olib tashlanishi mumkin | Yozuvlar olib tashlanmaguncha saqlanib qoladi |
Keng qo‘llaniladigan metodlar
set()get()has()delete()
Eslatma
WeakMap’larda quyidagilar yo‘q:
- size xususiyati
- keys() metodi
- values() metodi
- entries() metodi
- forEach() metodi
Iteratsiya qilinmaydi
WeakMap obyektlari iteratsiya qilinmaydi.
WeakMap obyektlarida keys(), values() yoki entries() metodlari yo‘q.
Odatiy qo‘llanilishi
WeakMap obyektlari ko‘pincha ma’lumotlarni obyektlarga, ularning xotiradan o‘chirilishiga to‘sqinlik qilmagan holda bog‘lash uchun ishlatiladi.
Misol
const privateData = new WeakMap();
const person = {};
privateData.set(person, "secret");
Obyektlar iyerarxiyasi
WeakMap obyektlari Object’dan meros oladi.
Object └─ WeakMap
WeakMap() bo‘yicha savollar
| Savol | Javob |
|---|---|
| Konstruktor turi | Function |
| Yaratadi | WeakMap obyektlari |
| Meros oladi | Object |
| Iteratsiya qilinadimi | Yo‘q |
| Obyekt kalitlar talab qilinadi | Ha |
WeakMap kalitlari obyekt bo‘lishi shart.
WeakMap obyektlari iteratsiya qilinmaydi va size xususiyatiga ega emas.
Map/Set/WeakMap/WeakSet
| Object | Kalit-qiymat | Kalitlar | Iteratsiya qilinadimi |
|---|---|---|---|
| Object | Ha | String/Symbol | Yo‘q |
| Map | Ha | Istalgan qiymat | Ha |
| WeakMap | Ha | Faqat obyektlar | Yo‘q |
| Set | Faqat qiymatlar | N/A | Ha |
| WeakSet | Faqat qiymatlar | Faqat obyektlar | Yo‘q |
Brauzerlarda qo‘llab-quvvatlash
WeakMap() — ECMAScript6 (ES6 2015) imkoniyati.
JavaScript 2015 2017-yil iyunidan beri barcha brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 51 |
Edge 15 |
Firefox 54 |
Safari 10 |
Opera 38 |
| 2016-yil may | 2017-yil aprel | 2017-yil iyun | 2016-yil sentabr | 2016-yil iyun |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
