Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: call, apply, bind, this, context

Как задать контекст выполнения функции?

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

Короткий ответ

Контекст выполнения функции (this) можно задать явно с помощью методов call, apply и bind. call и apply вызывают функцию сразу, передавая новый контекст и аргументы (call — через запятую, apply — массивом). bind создает новую функцию с привязанным контекстом, которую можно вызвать позже. Это полезно для заимствования методов или обработчиков событий.

Длинный ответ

Что такое контекст выполнения?

В JavaScript контекст выполнения функции определяется значением ключевого слова this. По умолчанию this зависит от того, как вызвана функция: в глобальном контексте это window (в браузере), у метода объекта — сам объект, у конструктора — новый экземпляр. Однако часто требуется явно задать контекст, чтобы функция работала с нужным объектом.

Методы для задания контекста

Существует три основных метода: call, apply и bind. Все они доступны у любой функции.

  • call — вызывает функцию с указанным контекстом и аргументами, переданными через запятую.
  • apply — аналогичен call, но аргументы передаются массивом.
  • bind — не вызывает функцию, а возвращает новую функцию с навсегда привязанным контекстом.

Примеры кода

const obj = { name: 'Alice' };
function greet(greeting) {
  console.log(greeting + ', ' + this.name);
}

greet.call(obj, 'Hello'); // Hello, Alice
greet.apply(obj, ['Hi']); // Hi, Alice

const boundGreet = greet.bind(obj);
boundGreet('Hey'); // Hey, Alice

Когда это применяется?

Явное задание контекста часто используется при заимствовании методов (например, Array.prototype.slice.call(arguments)), в обработчиках событий для сохранения контекста, а также в функциональном программировании для создания частично применённых функций.

Вывод: Используйте call и apply для немедленного вызова с новым контекстом, а bind — когда нужно создать функцию с фиксированным контекстом для последующего использования. Это основа работы с this в JavaScript.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#call

#apply

#bind

#this

#context

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию