Метод не вызывает локальную функцию
Помогите разобраться: метод window.setInterval() совсем отказывается признавать локальную функцию.
window.onload = function(){
alert('firstFunction ');//Отрабатывает
function secondFunction(){
alert('secondFunction ');
}
secondFunction();//Отрабатывает
window.setInterval('secondFunction()',5000);//А вот тут выдает: "secondFunction is not defined"
}
Я полагаю это из-за области видимости. Как можно локальную функцию(secondFunction) сделать глобальной не вынося ее из первой функции? |
Читайте учебник на этом сайте: http://learn.javacript.ru, он вас научит правильному и современному javascript.
Ответ же на вопрос: если в интервал или таймаут передаётся строка, то оная eval'ится в глобальной области видимости, где, естесно, никакой secondFunction не существует. Надо делать так: setInterval(secondFunction,5000);передавая в интервал нужную функцию напрямую. Если же требуется указать параметры - можно создать анонимную обёртку:
setInterval(function(){
secondFunction( 123 )
},5000);
|
| Часовой пояс GMT +3, время: 07:10. |