Різниця між методами виклику, застосування та прив’язки JavaScript

Давайте просвердлимо це собі в голову і закінчимо з цим раз і назавжди.

Я пишу цей мікропост, оскільки згадане питання переслідувало мене дуже довго, і я знав, що не єдиний. Кожного разу, коли я бачив, що хтось використовує будь-який із цих трьох методів, мені доводилося поспішати до MDN, щоб зрозуміти, що відбувається.

Досить було досить. Я знав, що повинен щось робити, і зробив. Я нібито створив прислів'я срібну кулю, яка може допомогти новим розробникам JavaScript.

Застереження : Це не теоретичне рішення, а дійсно шалений спосіб запам'ятати різницю.

Основною причиною плутанини між методами call()та apply()є те, як передати додаткові аргументи, крім того this. А чому ми bind()взагалі маємо ?

Тож давайте дізнаємось, як легко розрізнити трьох.

Застосувати ()

apply(this [, [arg1, arg2,...]]): Викликає функцію із заданим thisзначенням. Подальші аргументи подаються як єдиний масив .

Шлях пам'ятати : « pply приймає аргументи як A rray» або « АА »

Зателефонувати ()

call(this [, arg1, arg2...]): Викликає функцію за умови this. Подальші аргументи подаються як список, відокремлений комами

Способи запам'ятовування: "Аргументи виклику розділяються комами" або " CC ".

Пов'язати ()

bind(this): Повертає нову функцію, thisзначення якої прив'язане до наданого значення.

Способи пам’ятати: bind () - єдиний метод із трьох, який взагалі повертає нову функцію. Функція не викликається.

Загорнути

Сподіваюся, наведене вище пояснення може допомогти деяким із вас. Це, безумовно, допомагає мені.

Чи є у вас інші прийоми запам'ятовування, пов'язані з програмуванням? Будь ласка, поділіться ним із громадою, оскільки це допоможе всім. Особливо під час тих співбесід.

Якщо у вас є якісь запитання чи сумніви, напишіть мені на Twitter @ rajat1saxena або напишіть мені на [email protected] Будь ласка, порекомендуйте цю публікацію, якщо вона вам сподобалась, і поділіться нею зі своєю мережею.