Большинство людей не понимают, как использовать методы функции javascript call(), apply() и bind(). Все они присоединяют это к функции, и разница заключается в вызове функции. Давайте посмотрим, что это значит

Вызов()

Метод call() вызывает функцию с заданным значением this и аргументами, разделенными запятыми. См. пример ниже

func.call(контекст, arg1, arg2, arg2…)

Давайте посмотрим на другой пример метода call(). Подумайте об инвентаризации, и каждый предмет должен иметь имя, цену и срок годности. Мы можем использовать функцию, чтобы добавить эти общие свойства к каждому элементу, как показано ниже.

Применять()

Метод apply() вызывает функцию с заданным значением this и остальными аргументами в виде массива.

func.apply(context, [arg1, arg2, arg3, …])

Приведенный выше пример Inventory также можно использовать с методом apply().

Методы Call() и apply() присоединяют this к функции и выполняются немедленно. Единственная разница между вызовом и применением заключается в анализе остальной части аргумента функции.

Call() для ввода, разделенного запятыми

Apply() для ввода массива

Связывать()

Функция bind() присоединяет это к функции и возвращает ее. Нужно вызывать его отдельно, и он может анализировать любое количество аргументов. См. приведенный ниже пример

func.bind(функция, контекст)

Проще говоря, мы можем сказать, что вызов и применение выполняются немедленно, а привязка возвращает функцию, которая может быть запущена позже.

Краткое содержание

Таким образом, основной концепцией всех этих методов является заимствование функций. Заимствование функций позволяет повторно использовать метод одного объекта для другого объекта без переопределения или копирования. Нам нужно явно установить методы this для вызова, применения и связывания().