在运行时创建一个函数

时间:2013-06-05 10:50:44

标签: javascript

有没有办法在运行时使用未知(但可信)的内容在设计时创建函数而不使用eval()?

基本上我试图创建一个“硬编码”功能,因为它会被称为很多次。 在许多调用开始之前,只有“硬编码”才会在运行时完成一次。

(未经测试的例子)

var strFuncString = 'function(){';
for (some loop)
{
    strFuncString+='DoSomething()'; //if this can be made to reference an object obtained for the for-loop then even better - i.e. Myfunc+=Obj.DoSomething
}
var MyFunc = eval(strFuncString  '}');

SomeProcessThatCallsItsArgALot(MyFunc);

我在调试器中尝试了这个但不出所料它没有用

((function(){console.log(1);} )+( function(){console.log(2);}))()

1 个答案:

答案 0 :(得分:3)