eval() を使用せずに、設計時に不明な (ただし信頼できる) コンテンツを含む関数を実行時に作成する方法はありますか?
基本的に、何度も呼び出されるため、パフォーマンス上の理由から「ハードコードされた」関数を作成しようとしています。多くの呼び出しが開始される直前に、実行時に「ハード コーディング」のみが 1 回行われます。
(未テストの例)
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);}))()