Вообще довольно не простая тема function func1
{ return function () { console.log(n * 10) } } let calc = func1(35); calc() >>> calc возвращает вложенную функцию. calc мы вызвали без параметра, но она всё равно возвращает результат 350. При ее вызове отработала функция func1 и вернула новую функцию, которая была вызвана в контексте функции func1. Переменная n оказалась замкнута в возвращаемой функции. Поэтому всегда когда будем вызывать calc() в ней всегда будет храниться переменная n, функция ее замкнула