Function类可以用来创建函数。
语法
var functionName=new Function([arg1,arg2,...,argn,]functionBody);
参数
-
functionName
- 创建的函数名称 [arg1,arg2,...,argn,]
- 参数列表,可选项 functionBody
- 调用该函数时被执行的JS代码块的字符串。
示例
var fn=new Function("a","b","c","document.write(a+b+c)"); //注意与匿名函数的区别 //这与下面的函数等价 function fn(a,b,c){ document.write(a+b+c); }
注意事项
Function()构造函数是在每次被调用的时候,动态的创建一个新的函数对象(动态变异)。结果就是每次调用函数时,Function()构造函数都要对它进行编译。所以不推荐使用。
Function()构造函数总是作为一个顶层函数来编译的。其作用域是全局。
(function (){ var x=1; var fn=new Function("alert(x);");//出错,"x"未定义 fn(); })();