有没有办法在运行时创建一个函数,其内容在设计时未知(但受信任),而不使用 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);}))()