改一下就好了。Jscript里function对象是Function而非functionfunction calculate(expr) { var fun = new Function("return " + expr); return fun(); } alert (calculate("2*3+4/2-1"))返回值为7所谓动态组成函数,就是这个函数体的语句是你在运行时指定的而不是想一般函数写死了。 比如上例中的fun,在你传"2*3+4/2-1"calculate时它的函数体类似: function XXX{return 2*3+4/2-1} 你传个"-1"的时候函数体会变成 function {return -1} 很有用的功能,不过对效率有影响。
{
var fun = new Function("return " + expr);
return fun();
}
alert (calculate("2*3+4/2-1"))返回值为7所谓动态组成函数,就是这个函数体的语句是你在运行时指定的而不是想一般函数写死了。
比如上例中的fun,在你传"2*3+4/2-1"calculate时它的函数体类似:
function XXX{return 2*3+4/2-1}
你传个"-1"的时候函数体会变成
function {return -1}
很有用的功能,不过对效率有影响。