ES6 arrow funksiyalar


ULASHISH

Ok funksiyalari

Ok funksiyalari qisqaroq funksiya sintaksisini yozishga imkon beradi:

Misol

Oldin:

hello = function() {
  return "Hello World!";
}

O‘zingiz sinab ko‘ring »

Misol

Ok funksiyasi bilan:

hello = () => {
  return "Hello World!";
}

O‘zingiz sinab ko‘ring »

U qisqaradi! Agar funksiyada faqat bitta operator bo‘lsa va operator qiymat qaytarsa, qavslar va return kalit so‘zini olib tashlashingiz mumkin:

Misol

Arrow funksiyalari standart holatda qiymat qaytaradi:

hello = () => "Hello World!";

O‘zingiz sinab ko‘ring »

Eslatma: Bu funksiya faqat bitta operatorga ega bo‘lsa ishlaydi.

Agar sizda parametrlar bo‘lsa, ularni qavs ichiga o‘tkazasiz:

Misol

Parametrli strelka funksiyasi:

hello = (val) => "Hello " + val;

O‘zingiz sinab ko‘ring »

Aslida, agar sizda faqat bitta parametr bo‘lsa, siz qavslarni ham o‘tkazib yuborishingiz mumkin:

Misol

Qavslarsiz arrow funksiyasi:

hello = val => "Hello " + val;
this

O‘zingiz sinab ko‘ring »



this haqida nima deyish mumkin?

this bilan ishlash ham oddiy funksiyalardan farq qiladi funksiyalari.

Qisqa qilib aytganda, arrow funksiyalarida this bog‘lanishi yo‘q.

Muntazam funksiyalarda this kalit so‘zi funksiya deb ataladigan obyektni ifodalaydi, bu oyna, hujjat, tugma yoki boshqa narsa bo‘lishi mumkin.

Arrow funksiyalarida this kalit so‘zi har doim arrow funksiyasini aniqlagan obyektni ifodalaydi.

Farqni tushunish uchun ikkita misolni ko‘rib chiqaylik.

Ikkala misol ham usulni ikki marta chaqiradi, avval sahifa yuklanganda va yana bir marta foydalanuvchi tugmani bosganida.

Birinchi misolda oddiy funksiya, ikkinchi misolda esa arrow funksiyasi qo‘llaniladi.

Natija shuni ko‘rsatadiki, birinchi misol ikki xil obyektni (window va button) qaytaradi, ikkinchi misol esa Header obyektini ikki marta qaytaradi.

Misol

Muntazam funksiya bilan this ifodalaydi funksiyani chaqirgan obyekt:

class Header {
  constructor() {
    this.color = "Red";
  }

//Regular function:
  changeColor = function() {
    document.getElementById("demo").innerHTML += this;
  }
}

const myheader = new Header();

//The window object calls the function:
window.addEventListener("load", myheader.changeColor);

//A button object calls the function:
document.getElementById("btn").addEventListener("click", myheader.changeColor);

O‘zingiz sinab ko‘ring »

Misol

Ok funksiyasi bilan this ifodalaydi Funksiyani kim chaqirganidan qat’i nazar, sarlavha obyekti:

class Header {
  constructor() {
    this.color = "Red";
  }

//Arrow function:
  changeColor = () => {
    document.getElementById("demo").innerHTML += this;
  }
}

const myheader = new Header();

//The window object calls the function:
window.addEventListener("load", myheader.changeColor);

//A button object calls the function:
document.getElementById("btn").addEventListener("click", myheader.changeColor);

O‘zingiz sinab ko‘ring »

Funksiyalar bilan ishlayotganda bu farqlarni yodda tuting. Ba’zan oddiy funksiyalarning xatti-harakati aynan sizga kerak bo‘lgan narsa bo‘ladi, aks holda arrow funksiyalaridan foydalaning.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!