怎么模拟settimeout()那样的功能 这样的?<script>function a(){alert("a")}function b(obj){ eval(obj)}b("a()")</script> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 借用一下,可以修改成下面的<script>function a(){alert("a")}function b(obj){ obj();}b(a);</script> 模拟settimeout()?是指模拟它的延时效果还是仅仅是默认它的参数调用?如果是前者好像无法做到。如果是后者net_lover(【孟子E章】) 的方法是对的,fandiy(龙霄溪舞) 的方法是错的。因为首先setTimeout的参数是一个字符串,更重要的是setTimeout调用的函数可以带参数(普通类型参数,不能是对象类型)。不过net_lover(【孟子E章】)的b这样写也许更形象些:)function b(str){ eval(str)} 另外如果,你仅仅是想将函数作为参数,那么就不用这么费事,直接使用即可。比如:function f1(a1){ alert(a1);}function f2(fName,fArg){ fName(fArg);}f2(f1,"hello"); //alert "hello" 直接在函数里写function aa(){ var a = "ccc" setTimeout( k , 1000 ) function k() { alert(a) }} setTimeout第一个参数既可以是字符串的函数,就像你说的可以带参数的那种字符串。但setTimeout的第一个参数也可以是函数,非字符串函数,想调用带参数的函数,直接写函数名是不可以的,但是参数可以通过回调函数写法传入。如下,看看什么效果:<script language="javascript"> var OBJ = []; setInterval(function(){ OBJ[OBJ.length]=OBJ.length; alert(OBJ); },2000);</script> setInterval是可以但是setTimeout好像没这种参数 setTimeout和setInterval参数结构是一致的,可以把例中的setInterval改成setTimeout试试,setTimeout只不过只有一次alert。这里用setInterval是为了体现第一个参数是函数的情况下,对全局对象的作用,当然这么写不够通用化,如需要通用,就需要自己编写回调函数,就可以作为参数来回传递调用。 【散分】花了一晚上写了个JavaScript小游戏 javascript里能不能设置元素的class属性 关于Ajax里跳转页面的问题,请各位高手帮忙 Iframe中如何实现遮盖主窗口 简单但是不知道怎么解决,如何改变div的innerhtml后立刻显示? javascript 面向对象编程问题 正则表达式如何匹配123321 , 12321这样的对称数 求大神给这种效果图轮播的代码 高分求教一个表单提交的无效的问题(问题很怪)。问题解决后即给分!! 最简单的无限级树型结构示例 单击ifrmae中的页关闭ifrmae,怎么做? 怎么让弹出的右键菜单消失?
<script>
function a()
{
alert("a")
}function b(obj)
{
obj();
}b(a);
</script>
是指模拟它的延时效果还是仅仅是默认它的参数调用?如果是前者好像无法做到。如果是后者net_lover(【孟子E章】) 的方法是对的,fandiy(龙霄溪舞) 的方法是错的。因为首先setTimeout的参数是一个字符串,更重要的是setTimeout调用的函数可以带参数(普通类型参数,不能是对象类型)。不过net_lover(【孟子E章】)的b这样写也许更形象些:)
function b(str)
{
eval(str)
}
比如:
function f1(a1)
{
alert(a1);
}
function f2(fName,fArg)
{
fName(fArg);
}
f2(f1,"hello"); //alert "hello"
{
var a = "ccc"
setTimeout( k , 1000 )
function k()
{
alert(a)
}
}
但setTimeout的第一个参数也可以是函数,非字符串函数,想调用带参数的函数,直接写函数名是不可以的,但是参数可以通过回调函数写法传入。如下,看看什么效果:<script language="javascript">
var OBJ = [];
setInterval(function(){
OBJ[OBJ.length]=OBJ.length;
alert(OBJ);
},2000);
</script>