我们都知道代码:
var ssum = function(a,b) { return a+b; } 的执行速度比
eval("var esum = function(a,b) { return a+b; } ");原因有很多。
我想知道的是,如果一个函数是通过计算一个字符串而创建的,如果它没有这样做,那么它的性能是否会比a更差。
对于上面的例子,它意味着: esum(1,1)会比ssum(1,1)慢吗?
我想要一个答案,告诉我这是否取决于浏览器实现(如果是,为什么),以及性能是否取决于eval-ed函数引用的变量。
非常感谢,Lx
发布于 2010-08-05 18:04:34
一旦对js代码求值,它就会转换成javascript ("javascript本地“或”编译“)代码(在您的例子中。情况并不总是这样,因为eval计算一个表达式,结果可以是一个数字)。
在那之后,它们都是普通的javascript对象(函数或其他),所以两者之间应该没有区别。
即使是ECMA-262规范(第10.4.2节)也没有讨论这种情况。
https://stackoverflow.com/questions/3413550
复制相似问题