Давайте будем простыми, чтобы вам не пришлось снова искать разницу между этими методами.

Простыми словами:

Используйте .bind (), если вы хотите, чтобы эта функция позже вызывалась с определенным контекстом, что полезно в событиях. Используйте .call () или .apply (), если вы хотите вызвать функцию немедленно, с изменением контекста.

context = this (или область, которую нужно использовать)

Вот и все! Буквально это так.

Все еще не понятно? Давайте подробнее рассмотрим их прототип и использование.

Прототипы:

function.bind(context[, arg1[, arg2[, ...]]])
function.apply(context, [arrayOfArguments])
function.call(context, arg1, arg2, ...)

.связывать():

function.bind (context [, arg1 [, arg2 [,…]]])

Аргументы:

  • context = контекст, который должен быть привязан к вызывающей функции, этот контекст будет использоваться позже.
  • [, arg1 [, arg2 [,…]]]] = все остальные необязательные аргументы, требуемые вызывающей функцией.

Возвращает: ограниченную функцию, которая будет использовать контекст (ограниченный выше) и аргументы.

.подать заявление():

function.apply (context, [arrayOfArguments])

Аргументы:

  • context = контекст, который теперь должен использоваться с вызывающей функцией.
  • [arrayOfArguments] = аргументы, необходимые для вызывающей функции, переданные в массиве.

Возвращает: результат вызова фактической функции с указанным контекстом и аргументами.

.вызов():

function.call (context, arg1, arg2,…)

Аргументы:

  • context = контекст, который теперь должен использоваться с вызывающей функцией.
  • arg1, arg2,… ​​ = аргументы, необходимые для вызывающей функции (Примечание: эти аргументы передаются без массива, в отличие от .apply () ).

Возвращает: результат вызова фактической функции с указанным контекстом и аргументами.

Пример:

Надеемся, что теперь вы лучше знакомы с .bind (), .apply () и .call ().
Не стесняйтесь хлопать в ладоши, если эта статья помогла вам лучше понять эти методы. :)

Прочтите эти статьи (привязать, применить, позвонить), если вы хотите узнать больше.