SetTimeout не принимает параметр при повторном вызове
Привет всем,
Задача скрипта запуск функции до появления определенных условий. function onemenu() { var onemenu = new Array ("czero", "cone","ctwo") return onemenu } var array_one = onemenu() menuup(array_one) function menuup(menu_array) { for (i= flag1; i<=menu_array.length; i++) { anim(i) flag1 ++ break } if (flag1 <= menu_array.length) { var set_timeout = 'menuup(' + menu_array + ')' setTimeout(set_timeout, 1000) } else { flag1 = 0 } } Так вот при повторном вызове SetTimout не передает список array_one. :(( Буду благодарен, если кто-нибудь мне поможет с этим разобраться. |
Вместо setTimeout(set_timeout, 1000), поставьте alert(set_timeout) и посмотрите, что выведется.
|
Ставил, в первый раз все нормально выводит все элементы списка, а во второй раз [object].
|
function onemenu() { var onemenu = new Array ("czero", "cone","ctwo") return onemenu } var array_one = onemenu() menuup(array_one) function menuup(menu_array) { for (i= flag1; i<=menu_array.length; i++) { anim(i) flag1 ++ break } if (flag1 <= menu_array.length) { setTimeout(function(){menuup(menu_array)}, 1000) } else { flag1 = 0 } } |
Работает!!!
Если нетрудно, теперь можно объяснить в чем сакраментальная разница между setTimeout(set_timeout,1000) и setTimeout(function(){menuup(menu_array)}, 1000)? Спасибо за помощь. |
сакраментальная разница в передаче параметров:
- в первом случае ф-ии set_timeout не передается ничего, - во втором случае благодаря замыканию передается массив menu_array. P.S. Kolyaj, для интереса выполнил setTimeout(function(){console.info(arguments)},1) выдает то [-10], то [5]. Интересно, что передается? |
Спасибо за ответ, буду разбираться.
|
Цитата:
|
Цитата:
|
А если серьезно, я плохо представляю, что и где вы выполнили.
|
Часовой пояс GMT +3, время: 00:09. |