JavaScript arrow funksiyalar (=>)
Massiv metodlari darsida narx => narx * 0.9
kabi yozuvni ko’rgansiz. Bu — arrow funksiya: qisqa va callback uchun
maxsus qulay shakl.
Oddiy funksiyadan arrow’ga
Bir xil ish, uch xil yozuv:
Uchalasi bir xil natija beradi. Farq — faqat yozuvda.
Qisqartirish qoidalari
Arrow funksiyani bosqichma-bosqich qisqartirish mumkin:
- Tana bitta
returnbo’lsa — figurali qavs vareturntushiriladi (yashirin return); - parametr bitta bo’lsa — qavs ham tushiriladi.
Obyekt qaytarish
Yashirin return bilan obyekt qaytarishda tuzoq bor:
Birinchi holatda { ni JavaScript funksiya tanasi deb o’qidi, obyekt
deb emas — natija undefined. Obyektni yumaloq qavsga o’rash muammoni
hal qiladi.
Callback’da eng foydali
Arrow funksiya massiv metodlari bilan birga eng ko’p ishlatiladi:
Eski yozuv bilan solishtiring:
sonlar.map(function (n) {
return n * 2;
});
Bir amal uchun uch qator — arrow bilan bitta.
this — asosiy farq
Arrow funksiyaning oddiy funksiyadan haqiqiy farqi sintaksis emas, balki
this ga munosabati. Oddiy funksiya this ni o’zi hosil qiladi; arrow
funksiya esa uni tashqi kontekstdan oladi:
Bu yerda forEach ichidagi arrow funksiya this ni tashqaridagi
hisobla metodidan oldi — shuning uchun this.soni ishladi.
Oddiy funksiya bilan bu buziladi:
Natija 0 — ichkaridagi this boshqa narsani ko’rsatdi. this mavzusi
alohida darsda batafsil ko’riladi.
Qachon ishlatmaslik kerak
Arrow funksiya obyekt metodi sifatida yaramaydi:
undefined chiqdi — arrow this ni obyektdan olmaydi. Metod uchun qisqa
yozuvni ishlating:
Amaliy mashq
(a, b) => a * bko’paytirish funksiyasini yozing;- uni to’liq
functionshaklida qayta yozing; - massivdagi matnlarni bosh harfga o’girish uchun
map+ arrow ishlating; { ism, yosh }obyekt qaytaradigan arrow funksiya yozing (qavsni unutmang);- obyekt metodini arrow bilan yozib ko’ring —
thisnima bo’ladi?
5-qadam arrow funksiyani qayerda ishlatmaslik kerakligini ko’rsatadi.
Qisqacha xulosa
- Arrow funksiya
=>bilan yoziladi:(a, b) => a + b. - Tana bitta ifoda bo’lsa
returnyozilmaydi — yashirin return. - Bitta parametrda qavs tushadi; nol yoki ikkitada — shart.
- Obyekt qaytarishda yumaloq qavsga o’rash kerak:
() => ({ ... }). - Arrow
thisni tashqi kontekstdan oladi — callback uchun ideal, obyekt metodi uchun yaramaydi.
Keyingi darsda callback funksiyalar va ular orqali asinxron kodga o’tamiz.