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.

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay