Javascript 在运行时创建函数
有没有一种方法可以在运行时创建一个函数,其中包含在设计时未知(但受信任)的内容,而不使用eval() 基本上,出于性能原因,我试图创建一个“硬编码”函数,因为它将被多次调用。 在许多调用开始之前,在运行时只执行一次“硬编码” (未经测试的示例) 我在调试器中尝试了这一点,但毫不奇怪它没有起作用Javascript 在运行时创建函数,javascript,Javascript,有没有一种方法可以在运行时创建一个函数,其中包含在设计时未知(但受信任)的内容,而不使用eval() 基本上,出于性能原因,我试图创建一个“硬编码”函数,因为它将被多次调用。 在许多调用开始之前,在运行时只执行一次“硬编码” (未经测试的示例) 我在调试器中尝试了这一点,但毫不奇怪它没有起作用 ((function(){console.log(1);} )+( function(){console.log(2);}))() 您可以使用新功能(bodytext) 请参见您可以使用新功能,但它的工
((function(){console.log(1);} )+( function(){console.log(2);}))()
您可以使用
新功能(bodytext)
请参见您可以使用
新功能
,但它的工作原理与eval
非常相似。如果不使用eval
,我认为没有办法。但是,如果它是一个可信的来源,为什么不使用eval?而使用闭包对您来说太慢了?JIT应该能够自己做到这一点。这是过早的优化还是您已经遇到了一些问题?我很好奇这种设计的原因是什么限制或要求。看起来实际的问题是在更高的层次上。虽然我相信这与使用eval
@Ian是的,但它是相似的,但似乎没有像eval
那样受到污染,也许因为它确实保证了你能得到的只是一个具有自己作用域的函数。
((function(){console.log(1);} )+( function(){console.log(2);}))()