call(), apply() и bind() — это методы JavaScript, которые позволяют явно установить контекст this для функции. Они различаются по способу вызова функции и передаче аргументов.
call()fn.call(thisArg, arg1, arg2)fn.call(obj, a, b);
apply()fn.apply(thisArg, [arg1, arg2])fn.apply(obj, [a, b]);
bind()thisfn.bind(thisArg)const boundFn = fn.bind(obj);
boundFn(a, b); // вызов позже
call() и apply() выполняются немедленно; bind() откладывает выполнениеcall() принимает отдельные аргументы; apply() принимает массив; bind() может опционально предустановить аргументыcall() и apply() возвращают результат функции; bind() возвращает новую функциюcall(), когда аргументы известны заранее и нужен немедленный вызовapply(), когда аргументы уже находятся в массивеbind(), когда нужно сохранить контекст this для использования позже — например, в колбэках или обработчиках событийИ call(), и apply() немедленно возвращают результат выполнения функции, в то время как bind() возвращает новую связанную функцию без вызова исходной функции.
Новый — ещё не проверен сообществом
Вы