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:

JavaScript

Uchalasi bir xil natija beradi. Farq — faqat yozuvda.

Qisqartirish qoidalari

Arrow funksiyani bosqichma-bosqich qisqartirish mumkin:

JavaScript
  • Tana bitta return bo’lsa — figurali qavs va return tushiriladi (yashirin return);
  • parametr bitta bo’lsa — qavs ham tushiriladi.

Obyekt qaytarish

Yashirin return bilan obyekt qaytarishda tuzoq bor:

JavaScript

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:

JavaScript

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:

JavaScript

Bu yerda forEach ichidagi arrow funksiya this ni tashqaridagi hisobla metodidan oldi — shuning uchun this.soni ishladi.

Oddiy funksiya bilan bu buziladi:

JavaScript

Natija 0 — ichkaridagi this boshqa narsani ko’rsatdi. this mavzusi alohida darsda batafsil ko’riladi.

Qachon ishlatmaslik kerak

Arrow funksiya obyekt metodi sifatida yaramaydi:

JavaScript

undefined chiqdi — arrow this ni obyektdan olmaydi. Metod uchun qisqa yozuvni ishlating:

JavaScript

Amaliy mashq

  1. (a, b) => a * b ko’paytirish funksiyasini yozing;
  2. uni to’liq function shaklida qayta yozing;
  3. massivdagi matnlarni bosh harfga o’girish uchun map + arrow ishlating;
  4. { ism, yosh } obyekt qaytaradigan arrow funksiya yozing (qavsni unutmang);
  5. obyekt metodini arrow bilan yozib ko’ring — this nima 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 return yozilmaydi — yashirin return.
  • Bitta parametrda qavs tushadi; nol yoki ikkitada — shart.
  • Obyekt qaytarishda yumaloq qavsga o’rash kerak: () => ({ ... }).
  • Arrow this ni tashqi kontekstdan oladi — callback uchun ideal, obyekt metodi uchun yaramaydi.

Keyingi darsda callback funksiyalar va ular orqali asinxron kodga o’tamiz.

Bu dars foydali bo'ldimi?

marta ko'rildi