вызов метода объекта в через setTimeOut()....КАК???

IIIEPJIOK

Новичок
вызов метода объекта в через setTimeOut()....КАК???

PHP:
function TSomeObj(someArg){ 
    this.someArg = someArg; 
} 
TSomeObj.prototype = { 
    someMethod : function(){ 
        if (a<10){ 
             a++;    
        } 
        else{ 
            setTimeout('ЧТОБ ТАКОЕ НАПИСАТЬ, ЧТОБ ПОЛУЧИЛАСЬ РЕКУРСИЯ', 100); 
        } 
    } 
}
В общем, как вызвать из сетТаймАут этот же метод?
 

Zetruger

ivan.chistyakov.name
ЧТОБ ПОЛУЧИЛАСЬ РЕКУРСИЯ
это не рекурсия

боюсь что так нельзя
так как в setTimeout надо передавать строку
придется указывать имя объекта, а так как их может быть сколь угодно и все разные, то нужно колдавать

лучше вынеси setTimeout из класса
 

dimagolov

Новичок
Zetruger, учи матчасть...
setTimeout (function() {this.someMethod ();}, 100);
только изначально this должен на сам объект указывать...

еще для вызова самого себя есть arguments.callee, только в этом случае я за this не ручаюсь
 

dimagolov

Новичок
мда... есть нюанс.
Код:
	var t= this;
        window.setTimeout (function() {t.someMethod ();}, 100);
 

dimagolov

Новичок
IIIEPJIOK, разберись куда у тебя this. указывает. пропиши одинаковые свойства (типа my_type = "ClassName") для window и всех своих объектов и выводи это alert (this.my_type).

скажем так, этот пример я тестироровал в FF & IE6:
Код:
<html>
<head>
<title>test</title>
<script>
function TSomeObj(someArg){ 
    this.someArg = someArg; 
	i = 0;
} 
TSomeObj.prototype = { 
    someMethod : function(){ 
	i++;
	document.getElementById("show-loading").innerHTML += this.someArg + "/" + i + " ";
	var t= this;
        window.setTimeout (function() {t.someMethod ();}, 100); 
    } 
};

function test () {
	oObj = new TSomeObj (5);
	oObj.someMethod ();
}
</script>
</head>

<body onload="test ();">
 <div id = "show-loading">output: </div>     
</body>
</html>
 

telega-ru

Новичок
Ну это же не рекурсия. К моменту вызова t.someMethod (); выполнение предыдущего someMethod() уже закончится.
 
Сверху