DEV Community

Ozodbek Tohirov
Ozodbek Tohirov

Posted on

CALL, APPLY va BIND o'zi nima va qanday farqlari bor?

JavaScriptda call, apply, va bind funktsiyalari, this kontekstining qiymatini o'zgartirish uchun ishlatiladi.

call va apply funksiyalari o'z ichiga olgan funksiyani boshqa obyektning bo'sh funksiyasi sifatida chaqirishga imkon beradi. Bunday chaqirishda, asosiy maqsad - o'zgaruvchi kontekstini o'zgartirishdir. Farqlari esa kiritilgan argumentlarda bor. call funktsiyasi bir-biridan ajratilgan argumentlar bilan, apply esa bir ro'yxat argumenti bilan ishlaydi.

bind funktsiyasi esa o'z ichiga olgan funksiya va obyektning o'zgaruvchi kontekstiga bog'liq bo'lmasa ham, o'zgartirilgan variantini qaytaradi. Bunda, asosiy maqsad this kontekstini o'zgartirish emas, balki boshqa bir nechta argumentlarga asoslanadi. bind ishlatilganda, yangi funktsiya qaytariladi va unga kerakli argumentlar otalib, keyin chaqirish mumkin.

Sintaksislar quyidagicha ko'rinadi:

function.call(ozgaruvchi_konteksti, argument1, argument2, ...);
function.apply(ozgaruvchi_konteksti, [argument1, argument2, ...]);
function.bind(ozgaruvchi_konteksti, argument1, argument2, ...);
Enter fullscreen mode Exit fullscreen mode

call va apply funksiyalari bir-biridan ajratilgan argumentlar bilan chaqiriladi, bu argumentlar obyektga ko'rsatilgan o'zgaruvchi kontekstida this sifatida ishlatiladi. bind esa funksiyani o'zgartirilgan variantini qaytaradi, va bunda o'zgartirilgan kontekst va argumentlar beriladi.

Keyin funksiya chaqirishida, asosiy funktsiyani call yoki apply ishlatib chaqirish mumkin. bind esa o'zgartirilgan variantini qaytaradi va keyin uni chaqirish mumkin.

Farqlari esa quyidagicha ko'rinadi:

call va apply funksiyalari natijada funksiya yakka obyekt sifatida chaqiriladi, bind esa yangi funksiya qaytaradi.
call va apply funksiyalari faqat bir marta chaqiriladi, bind esa kerakli soni bo'lishiga qaramay, ko'p marta chaqirilishi mumkin.
call va apply funktsiyalari bir-biridan ajratilgan argumentlar bilan ishlaydi, bind esa argumentlarni biriktiradi va yangi funksiya qaytaradi.

Top comments (0)