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

Я пишу цей мікропост, оскільки згадане питання переслідувало мене дуже довго, і я знав, що не єдиний. Кожного разу, коли я бачив, що хтось використовує будь-який із цих трьох методів, мені доводилося поспішати до 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] Будь ласка, порекомендуйте цю публікацію, якщо вона вам сподобалась, і поділіться нею зі своєю мережею.