Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.10.2012, 04:19
ztm ztm вне форума
Новичок на форуме
Отправить личное сообщение для ztm Посмотреть профиль Найти все сообщения от ztm
 
Регистрация: 09.10.2012
Сообщений: 1

Метод не вызывает локальную функцию
Помогите разобраться: метод window.setInterval() совсем отказывается признавать локальную функцию.
window.onload = function(){
alert('firstFunction ');//Отрабатывает
function secondFunction(){
  alert('secondFunction ');
}
secondFunction();//Отрабатывает
window.setInterval('secondFunction()',5000);//А вот тут выдает: "secondFunction is not defined"
}

Я полагаю это из-за области видимости. Как можно локальную функцию(secondFunction) сделать глобальной не вынося ее из первой функции?

Последний раз редактировалось ztm, 09.10.2012 в 04:37.
Ответить с цитированием
  #2 (permalink)  
Старый 09.10.2012, 08:12
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Читайте учебник на этом сайте: http://learn.javacript.ru, он вас научит правильному и современному javascript.

Ответ же на вопрос: если в интервал или таймаут передаётся строка, то оная eval'ится в глобальной области видимости, где, естесно, никакой secondFunction не существует.

Надо делать так:
setInterval(secondFunction,5000);
передавая в интервал нужную функцию напрямую.
Если же требуется указать параметры - можно создать анонимную обёртку:
setInterval(function(){
    secondFunction( 123 )
},5000);
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к переменной внутри объекта, в произвольной функцию через его метод platedz Элементы интерфейса 15 25.08.2012 00:03
Наследование вызовом родителя. Метод apply() jsuse Общие вопросы Javascript 0 09.02.2012 23:54
checkbox включен запускаем одну функцию выключен другую Sadist_dead Элементы интерфейса 11 27.09.2011 10:46
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 19:29
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11