сакраментальная разница в передаче параметров:
- в первом случае ф-ии
set_timeout не передается ничего,
- во втором случае благодаря
замыканию передается массив menu_array.
P.S. Kolyaj, для интереса выполнил
setTimeout(function(){console.info(arguments)},1)
выдает то
[-10], то
[5]. Интересно, что передается?