Давайте посмотрим, что здесь происходит:
Вы вызываете функцию f с аргументом 1 и присваиваете результат внутренней переменной.
Когда вызывается f (1), область действия fимеет 2 переменные (param и n)
Переменная params является переданным аргументом, а n является функцией.
Итак, внутри функции f - переменная n инициализируется функцией, а затемувеличивается, затем возвращается n из функции f.
Эта возвращаемая функция (n) присваивается внутреннему.
при вызове inner возвращает param - который находится в области действия функции nиз-за закрытия.
Надеюсь, что шаги были ясны.
Теперь вы сомневаетесь, как n получил доступ к param ++.Это не так, param ++ уже был выполнен при вызове f (1).Все n имеет только ссылку на значение параметра.