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>