Задать вопрос

Как работает контекст вызова функций? И почему так?

Искренне не понимаю (пока), почему функции в одном случае вызываются в глобальном контексте, в другом в локальном. Я где-то пропустила важный факт? Читала про лексическое окружение, ок, читала про Scope, ок. Но как всё под капотом в разных условиях работает, не могу уложить в голове.

class Foo{
  constructor(){
    this.bar()
  }
  
  bar(){
  console.log(this);
  }
  
}

let foo = new Foo();// class

/*******************************************/
foo.bar(); // class

/*******************************************/
let btn = document.querySelector('button');
btn.addEventListener('click', foo.bar); // html-элемент

/*******************************************/
function glob(){
  function inFoo(){
    console.log(this);
  }
  
  inFoo();
}

glob(); // window
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Простой 2 комментария
Решение пользователя Кристина К ответам на вопрос (2)
KrisIris
@KrisIris Автор вопроса
Вот нашла хороший, на мой взгляд, ответ. Как раз для таких вопросов!))))
Ответ написан
Комментировать