setTimeOut 在类内部的方法内进行递归,有问题 看setTimeout ("myClass.doAction()", 20); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个doAction为什么不写在外面function doAction() { …… setTimeout ("doAction()", 20); } 因为doAction 有很多参数要接收 还有这个怎么实现function myClass(){ this.doAction=function() { …… setTimeout ("doAction()", 20); }}报错,说doAction()不行,请问内部方法的setTimeout自身递归怎么写? 试试这个setTimeout("this.doAction()",20); 调用的方法用下面的<script language=javascript defer> function myClass(objTest) { this.doAction=doAction function doAction() { var obj=document.getElementById("div1") obj.innerHTML=parseInt(obj.innerHTML)+1 if(parseInt(obj.innerHTML)>50) { return; } this.doAction() } } var a = new myClass a.doAction();</script><div id="div1">1</div> 因为你的doAction函数是隶属于myClass的一个子函数,或者说是一个局部变量,局部变量对于外部是不可访问的,你需要有一个方法,让window对象找得到这个doAction就可以了.<div id="tt"></div><SCRIPT LANGUAGE="JavaScript"><!--function myClass(){ this.value = 1; this.doAction = function() { var _self = this; this.value += 1; document.getElementById("tt").innerHTML = this.value; setTimeout(function(){_self.doAction();}, 20); }}new myClass().doAction();//--></SCRIPT>演示代码一段. function myClass(){ function doAction() { …… setTimeout (doAction, 20) }}注意这里setTimeout (doAction, 20), 很多人以为这里用setTimeout ("doAction()", 20)和setTimeout (doAction, 20)是一样的, 一般情况下是一样的, 但你这种情况就不同了, 呵呵 function myClass(){ function doAction() { …… setTimeout (arguments.callee, 20) }}//这样也行 setTimeout ("doAction()", 20);为什么要用"doAction()"双引号呢??????你要么就setTimeout (doAction, 20);要么就setTimeout (function(){doAction()}, 20);第一个参数不是得是个方法对象而不是一个字符串吧?难道用字符串也可以? 在IE中彻底删除iframe元素 js 加载swf对象ie7缓存问题 关于循环中对像名的问题? 字体颜色渐变! 寻WEB架构师~~~(深圳~~~) 在JS中书写路径遇到问题,请大家帮忙! 问大家一个有关下拉列表框的问题 大家帮我看看为什么这样连接不上Access数据库 有人用javascript做过网站的计数器吗?急 关于框架的很菜的问题!! 急救!!!! js的无间隙滚动,为什么高度设置到230就不行了,不能滚动???
function doAction() {
……
setTimeout ("doAction()", 20);
}
这个怎么实现
function myClass()
{
this.doAction=function() {
……
setTimeout ("doAction()", 20);
}
}
报错,说doAction()不行,请问内部方法的setTimeout自身递归怎么写?
setTimeout("this.doAction()",20);
<script language=javascript defer>
function myClass(objTest)
{
this.doAction=doAction
function doAction() {
var obj=document.getElementById("div1")
obj.innerHTML=parseInt(obj.innerHTML)+1
if(parseInt(obj.innerHTML)>50)
{
return;
}
this.doAction()
}
}
var a = new myClass
a.doAction();
</script>
<div id="div1">1
</div>
<SCRIPT LANGUAGE="JavaScript">
<!--
function myClass()
{
this.value = 1;
this.doAction = function()
{
var _self = this;
this.value += 1;
document.getElementById("tt").innerHTML = this.value;
setTimeout(function(){_self.doAction();}, 20);
}
}
new myClass().doAction();
//-->
</SCRIPT>演示代码一段.
{
function doAction() {
……
setTimeout (doAction, 20)
}
}注意这里setTimeout (doAction, 20), 很多人以为这里用setTimeout ("doAction()", 20)
和setTimeout (doAction, 20)是一样的, 一般情况下是一样的, 但你这种情况就不同了, 呵呵
{
function doAction() {
……
setTimeout (arguments.callee, 20)
}
}
//这样也行
为什么要用"doAction()"双引号呢??????
你要么就
setTimeout (doAction, 20);
要么就
setTimeout (function(){doAction()}, 20);第一个参数不是得是个方法对象而不是一个字符串吧?难道用字符串也可以?