动态定义的函数,错在哪里呢?  <script type="text/javascript">
var fun1=new Function(x,y,"return (x+y);");
var s=fun1.toString();
document.write(s);
  </script>
我的目的是动态定义一个函数,然后印出它的代码来,但是以上代码为何报错呢?

解决方案 »

  1.   

    引号
    var fun1=new Function("x","y","return (x+y);");
    var s=fun1.toString();
    document.write(s);
      

  2.   

    谢楼上指教,我也刚试出来,加上引号就行了,但是我不明白,
    这里x,y都是数值型呀,不是字符串型呀。
    因为 return x+y;
    这也表示,x,y都不是字符呀,
    为何参数中,必须要加上引号才对呢?
      

  3.   

    new Function("x","y","return (x+y);");中的"x","y"表示变量的名字,所以是字符串型。
    如果不用字符串,不就和外面的叫x,y的变量搞起来了?
    var fun1=new Function("x","y","return (x+y);");
    // 调用
    fun1(1, 2);这里的fun1也不过是函数指针