Javascript.RU

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

Вызов метода через setTimeout из самого себя
Доброго времени суток ув. форумчане! подскажите пожалуйста почему не работает такой код?

var Tfade=function(){}

Tfade.prototype.fadeIn=function() {
   setTimeout(function () { this.fadeIn(); }, 100);
 }

var fade=new Tfade();

fade.fadeIn();
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2011, 22:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

leoHex,
когда setTimeout сработает this будет = window а не fade.
Используйте замыкание или arguments.callee
<div id="test">test</div>
<script type="text/javascript">
var Tfade=function(){};
Tfade.prototype.fadeIn=function() {
document.getElementById('test').childNodes[0].data +=1;
var a = this;
setTimeout(function () { return function(b){b.fadeIn()}(a)}, 500);
 }
var fade=new Tfade();
fade.fadeIn();
</script>


<div id="test">test</div>
<script language="JavaScript" type="text/javascript">
var Tfade=function(){}
Tfade.prototype.fadeIn=function() {
document.getElementById('test').childNodes[0].data +=1;
setTimeout( arguments.callee, 500);
 }
var fade=new Tfade();
fade.fadeIn();
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2011, 00:28
Аватар для leoHex
Интересующийся
Отправить личное сообщение для leoHex Посмотреть профиль Найти все сообщения от leoHex
 
Регистрация: 17.04.2011
Сообщений: 16

спасибо большое! всё работает! только почему arguments.callee не предает переменные fade я не понял... или оно и не должно?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции печати страницы полученной через AJAX Garik AJAX и COMET 4 02.03.2011 17:05
Передача контекста через setTimeout decadent jQuery 3 10.02.2011 19:01
Наследование класса-замыкания и вызов метода предка BobiKK Общие вопросы Javascript 2 21.03.2010 13:26
AJAX, вызов из метода обьекта Logo Общие вопросы Javascript 4 20.06.2009 23:35
Использование метода setTimeout News Общие вопросы Javascript 3 18.09.2008 20:37