Технически замыкание включает три компонента:
— внешняя функция
multiply(), которая определяет некоторую область видимости и в которой определены некоторые переменные и параметры - лексическое окружение— переменные и параметры (лексическое окружение), которые определены во внешней функции.
— вложенная функция
inner(), которая использует переменные и параметры внешней функции.inner() запоминает окружение, в котором была создана, в частности, значение параметра n. Кроме того, сама принимает параметр и возвращает произведение параметров n и m.