Почему в ответе выходит 122?
Задачка на каррирование и понимание работы областей видимости и цикла жизни переменных.
Функции mystery и mystery3 возвращают функции, которые имеют доступ к переменным родительского скоупа. Функция создается каждый раз при вызове функций mystery/mystery3 потому не возникает проблем с повторным вызовом.
Переменные живут пока на них хоть кто-то ссылается. В вашем примере на них ссылаются возвращаемые функции, и пока они не отработают, данные нам все еще доступны. Хоть вам может и казаться что после завершения работы функции они исчезают в небытие.
Вот собственно и все.
я извиняюсь а что именно не так??
Послеvar hidden = mystery(3);в  hidden  находится метод  mystery2 + в области где метод описан, находится в памяти  secret = 4 и  input = 5;
Послеvar jumble = mystery3(hidden); в jumble находится метод mystery4 а также переменная param
Работа последнего метода var result = jumble(2);
Методу mystery4 передается параметр 2. Далее в методе извлекаем параметр param - который висит в памяти. Param - является некой ссылкой на метод. mystery2, колорому передано 6.
То есть, если явно пересмотреть работу последнего метода var result = jumble(2);  , то будет следующее:
mystery4(2)
  mystery2(6)
      6  *  5
   30 * 4 
  120 + 2
= 122