Встречается на собеседованиях • сегодня

Как вызвать функцию с заданным This

В JavaScript есть 3 основных способа вызвать функцию с заданным контекстом this:

  1. call() - вызывает функцию с указанным this и аргументами по отдельности:
js
func.call(context, arg1, arg2);
  1. apply() - аналогичен call(), но принимает аргументы в виде массива:
js
func.apply(context, [arg1, arg2]);
  1. bind() - создает новую функцию с привязанным this (не вызывает сразу):
js
const boundFunc = func.bind(context);
boundFunc(arg1, arg2);

Пример:

js
const person = { name: 'John' };

function greet(greeting) {
  console.log(`${greeting}, ${this.name}!`);
}

greet.call(person, 'Hello'); // Hello, John!
greet.apply(person, ['Hi']); // Hi, John!

const boundGreet = greet.bind(person);
boundGreet('Hey'); // Hey, John!
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы