Искренне не понимаю (пока), почему функции в одном случае вызываются в глобальном контексте, в другом в локальном. Я где-то пропустила важный факт? Читала про лексическое окружение, ок, читала про 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