Почему не работает код (JavaScript)?
Вы не возвращаете сумму.
В первом случае вы возвращаете функцию, а не результат её выполнения.
Во втором - вы выполняете возвращённую функцию, которая ничего не возвращает.
Вернее, возвращает, но значение по умолчанию - undefined.
Ваш код работает ровно так, как написан.
вот здесь есть подробно с примерами learn.javascript.ru/closures