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

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

В JavaScript контекст функции (значение this) можно задать несколькими способами:

  1. Метод объекта - контекстом будет сам объект:
js
const obj = {
  name: 'John',
  greet() {
    console.log(`Hello, ${this.name}`);
  }
};
obj.greet(); // Hello, John
  1. Явное указание с помощью call, apply или bind:
js
function greet() {
  console.log(`Hello, ${this.name}`);
}

const person = {name: 'Alice'};
greet.call(person); // Hello, Alice
  1. Стрелочная функция - наследует контекст из окружающей области:
js
const obj = {
  name: 'Bob',
  greet: () => {
    console.log(`Hello, ${this.name}`); // undefined (контекст window)
  }
};
  1. Привязка в конструкторе (для классов):
js
class Person {
  constructor(name) {
    this.name = name;
    this.greet = this.greet.bind(this);
  }
  
  greet() {
    console.log(`Hello, ${this.name}`);
  }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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