Sobes.tech
Back to questions
Middle
2

Live coding: определить вывод в консоли для кода с функциями, стрелочными функциями, объектами и контекстом (this), call/bind

Companies where asked
X-Notes

Answer from AI

sobes.tech AI

В JavaScript контекст выполнения (this) зависит от способа вызова функции. Стрелочные функции не имеют собственного this — они наследуют его из внешнего лексического окружения.

Пример:

const obj = {
  value: 42,
  regularFunc: function() {
    console.log(this.value);
  },
  arrowFunc: () => {
    console.log(this.value);
  }
};

obj.regularFunc(); // 42 — this ссылается на obj
obj.arrowFunc();   // undefined или значение из внешнего контекста (например, window.value)

// Использование call/bind:
function show() {
  console.log(this.name);
}

const user = { name: 'Alice' };

show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice

Таким образом, call и bind позволяют явно задать this при вызове функции, но не работают с стрелочными функциями, так как у них this фиксирован лексически.