wm1*_*1sr 8 javascript optimization jsperf
如果我执行以下操作:
var abs = Math.abs;
不abs(-10)应该快Math.abs(-10)?因为abs是直接调用的.
这就是我的注意力:
Math.abs vs自定义abs功能

更新:
在Internet Explorer 11中执行的相同测试显示了完全不同的结果:

我推测这是由于对Chrome V8引擎内置功能的一些优化.
Givi 认为这个答案毫无用处。看评论。
在用户定义的对象中查找用户定义的函数比查找绑定到局部变量的函数慢,所以您基本上是对的。
然而,查找Math.*函数速度更快,很可能是因为 V8 引擎的内部优化(因此在局部变量中“缓存”内置函数实际上更慢,而“缓存”用户定义函数更快)。
编辑:这里有一个 jsperf演示了Math.*函数如何比其对应函数更快var x = Math.x,而对用户定义的函数执行相同的操作则不然。恕我直言,这就是 V8 的工作原理。

编辑#2:刚才我从你的问题中注意到这一行:
我推测这是由于 Chrome V8 引擎中内置函数的一些优化所致。
我不是 100% 确定,但看起来确实是这样,是的。