JavaScript объекты и setInterval @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 3 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
AlexShop Муж.
участник
34
Сообщения: 1866
Зарегистрирован: 17.02.04
Заголовок сообщения: JavaScript объекты и setInterval
Сообщение Добавлено: 20 Февраль 2007, 18:49:00 
Код:
<script type="text/javascript" language="JavaScript">
   function MyClass() {
      if (typeof MyClass._initialized == "undefined") {
         MyClass.prototype.method = function () {
            interval = setInterval('test()', 10);
         }
         function test() {
            alert('ok');
         }
      }
      MyClass._initialized = true;
   }
   
   var myObject = new MyClass();
   myObject.method();
</script>

Выдает ошибку: 'test is not defined'

Подскажите, в чем проблема, как исправить? :beer:

_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
gro
новый человек
17
Сообщения: 43
Зарегистрирован: 09.09.06
Сообщение Добавлено: 20 Февраль 2007, 21:50:40 
test определен в исполняемом контексте функции MyClass(), который к моменту истечения интервала уже мертв.
Либо давать ссылку непосредственно на функцию:
Код:
var interval = setInterval( test, 10 );

Либо через замыкания:
Код:
var interval = ( function() { return test(); } );

Второй способ полезен, когда нужно передать в функцию аргументы.
Так же настоятельно рекомендую определять локальные переменные при помощи "var".
AlexShop Муж.
участник
34
Сообщения: 1866
Зарегистрирован: 17.02.04
Сообщение Добавлено: 21 Февраль 2007, 17:51:35 
Спасибо все работает,

почему - я еще не понимаю толком,
надо будет углубиться как функции в JavaScript работают.

_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 3 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100