это функция, существующая в контексте другой функции
Глобальный объект window существует весь рантайм от запуска программы до ее завершения.что не делает это не замыканием.
function f() {
let x = 0, y = 0;
return () => {
debugger;
return x;
};
}
let ff = f();
ff();
Замыкание (англ. closure) в программировании — функция первого класса, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции в окружающем коде и не являющиеся её параметрами. Говоря другим языком, замыкание — функция, которая ссылается на свободные переменные в своей области видимости.
присутствуют ссылки на переменные, объявленные вне тела этой функции
Замыкание — это комбинация функции и лексического окружения, в котором эта функция была определена. Другими словами, замыкание даёт вам доступ к Scope (en-US) внешней функции из внутренней функции.. Тут смешано в одно понятие и LE и ES(Execution Scope), хотя это не одно и тоже.
console.log(x);
вот тут у ТСа происходит замыкание на глобальный контекст. Без ссылки на x не будет никакого замыкания. А то что функция видит лексическое окружение глобального обьекта это необходимое, но недостаточное условие. А в чем преимущество чтения онлайн, интересно?можно накачать кучу книг по всем возможным тематикам и никогда их не прочитать