Arrow Funksiyalar(Arrow Functions)
Funksiyalar yaratishning boshqa juda oddiy va qisqa sintaksisi mavjud, bu ko‘pincha Funksiya Ifodalaridan yaxshiroqdir.
Arrow Funksiyalar
Funksiyalar yaratishning boshqa juda oddiy va qisqa sintaksisi mavjud, bu ko‘pincha Funksiya Ifodalaridan yaxshiroqdir.
Bu "arrow funksiyalar" deb ataladi, chunki u quyidagicha ko‘rinadi:
Bu func
deb nomlangan funksiya yaratadi, u arg1..argN
argumentlarini qabul qiladi, so‘ngra ularning yordamida o‘ng tarafdagi expression
ni hisoblab, natijani qaytaradi.
Boshqacha qilib aytganda, bu quyidagi uzunroq shakldan qisqaroq versiyasi:
Konkret misolni ko‘raylik:
Ko‘rganingizdek, (a, b) => a + b
bu ikkita argumentni qabul qiluvchi funksiya demakdir. Bajarilganda, u a + b
ifodasini hisoblaydi va natijani qaytaradi.
Agar faqat bitta argument bo‘lsa, unda parametrlar atrofidagi qavslarni olib tashlash mumkin, bu esa yanada qisqaroq bo‘ladi.
Masalan:
Agar argumentlar bo‘lmasa, qavslar bo‘sh bo‘ladi, lekin ular mavjud bo‘lishi kerak:
Arrow funksiyalarni Funksiya Ifodalari kabi ishlatish mumkin.
Misol uchun, dinamik ravishda funksiya yaratish:
Arrow funksiyalar dastlab begona va o‘qilishi qiyin bo‘lishi mumkin, ammo tez orada ular tuzilishiga ko‘nikib ketiladi.
Ular juda qulay bo‘lib, oddiy bir qatorli amallar uchun, ayniqsa ko‘p so‘z yozishga dangasalik qiladigan holatlarda.
Ko‘p qatorli Arrow Funksiyalar
Biz ko‘rgan arrow funksiyalar juda oddiy edi. Ular =>
ning chap tarafidan argumentlarni olib, o‘ng tarafdagi ifodani hisoblab qaytaradigan edi.
Ba’zida bizga ko‘proq murakkab funksiyalar kerak bo‘ladi, bir nechta ifodalar va bayonotlar bilan. Bunday hollarda, ular qavslar ichiga o‘ralishi mumkin. Asosiy farq shundaki, qavslar ichida qiymatni qaytarish uchun return
so‘zi talab qilinadi (odatdagi funksiyalarda bo‘lgani kabi).
Masalan:
Xulosa
Arrow funksiyalar oddiy amallar uchun juda qulay, ayniqsa bir qatorli funksiyalar uchun. Ular ikki xil shaklda bo‘ladi:
- Qavslar bilan bo‘lmasdan:
(...args) => expression
– o‘ng tarafdagi ifoda: funksiya uni hisoblaydi va natijani qaytaradi. Agar faqat bitta argument bo‘lsa, qavslarni olib tashlash mumkin, masalan:n => n*2
. - Qavslar bilan:
(...args) => { body }
– qavslar funksiyada bir nechta bayonot yozishga imkon beradi, lekin biror narsani qaytarish uchun aniqreturn
kerak.