мы заменим на return f на return f(), не будет работать? (извините, если вопрос глупый =) ) я так понял здесь идет возврат функции как объект?
работать будет, но результатом будет NaN 🙂
в первом случае возвращаем функцию, во втором - результат её выполнения
в JS функции — это first-class citizen. они могут быть присвоены переменным в качестве значения, могут быть переданы в качестве аргумента в другую функцию, они могут быть возвращены из функции. в твоём примере функция f возвращается из функции sum просто как функция
кстати, если будешь внимателен, то заметишь — функция f тоже возвращает функцию f
Обсуждают сегодня