性能损失JavaScript回调函数

gil*_*esC 3 javascript performance callback

与在同步方式中使用回调函数(在JavaScript中)相比,是否会降低性能?

例如:

method(function(result){});
Run Code Online (Sandbox Code Playgroud)

代替

var result = method();
Run Code Online (Sandbox Code Playgroud)

编辑:如果有回调函数引入的开销,我想知道为什么。

提前致谢!

Tho*_*mas 5

与返回相比,在同步计算中使用回调函数的开销很小。
是的,可以以同步方式使用回调。签出CPS ; 或出于API中的一致性原因。

这种开销来自于使函数挂接和维护调用堆栈的开销,并且由于您经常将闭包用作回调,因此创建它们也有一点开销。

但是,这将是微优化,可比替换v * 2v << 1(由于性能原因)。
如果必须在代码中优化这些内容,则应用程序的结构中确实存在一些严重的问题。

同步调用回调时要提到的唯一问题是,在某个时候可能会超过最大堆栈大小。

  • 我并不是说编程技能很差。我只是想为阅读此答案的每个人介绍整个主题。 (4认同)