这样的?<script>
function a()
{
alert("a")
}function b(obj)
{
 eval(obj)
}b("a()")
</script>

解决方案 »

  1.   

    借用一下,可以修改成下面的
    <script>
    function a()
    {
    alert("a")
    }function b(obj)
    {
      obj();
    }b(a);
    </script>
      

  2.   

    模拟settimeout()?
    是指模拟它的延时效果还是仅仅是默认它的参数调用?如果是前者好像无法做到。如果是后者net_lover(【孟子E章】) 的方法是对的,fandiy(龙霄溪舞) 的方法是错的。因为首先setTimeout的参数是一个字符串,更重要的是setTimeout调用的函数可以带参数(普通类型参数,不能是对象类型)。不过net_lover(【孟子E章】)的b这样写也许更形象些:)
    function b(str)
    {
     eval(str)
    }
      

  3.   

    另外如果,你仅仅是想将函数作为参数,那么就不用这么费事,直接使用即可。
    比如:
    function f1(a1)
    {
       alert(a1);
    }
    function f2(fName,fArg)
    {
       fName(fArg);
    }
    f2(f1,"hello");                     //alert "hello"
      

  4.   

    直接在函数里写function aa()
    {
        var a = "ccc"
        setTimeout( k , 1000 )
        function k()
        {
             alert(a)
        }
    }
      

  5.   

    setTimeout第一个参数既可以是字符串的函数,就像你说的可以带参数的那种字符串。
    但setTimeout的第一个参数也可以是函数,非字符串函数,想调用带参数的函数,直接写函数名是不可以的,但是参数可以通过回调函数写法传入。如下,看看什么效果:<script language="javascript">
     var OBJ = [];
     setInterval(function(){
      OBJ[OBJ.length]=OBJ.length;
      alert(OBJ);
     },2000);
    </script>
      

  6.   

    setInterval是可以但是setTimeout好像没这种参数
      

  7.   

    setTimeout和setInterval参数结构是一致的,可以把例中的setInterval改成setTimeout试试,setTimeout只不过只有一次alert。这里用setInterval是为了体现第一个参数是函数的情况下,对全局对象的作用,当然这么写不够通用化,如需要通用,就需要自己编写回调函数,就可以作为参数来回传递调用。