Метод не вызывает локальную функцию
Помогите разобраться: метод 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, время: 19:27. |