使用回调函数(在JavaScript中)是否存在性能损失,而不是以同步方式使用它?
例如:
method(function(result){});
而不是
var result = method();
编辑:如果回调函数引入了开销,我很想知道原因。
提前致谢!
答案 0 :(得分:5)
与return相比,在同步计算中使用回调函数的开销很小。
是的,可以以同步方式使用回调。查看CPS;或者出于API中的一致性原因。
这个开销来自修复函数和维护调用堆栈的开销,并且由于你经常使用闭包作为回调,所以创建它们也有一点开销。
但这可能是微优化,相当于用v * 2
替换v << 1
(出于性能原因)。
如果你必须在代码中优化这些东西,那么你的应用程序结构就会遇到一些非常严重的问题。
同步调用回调时唯一要提到的问题是在某些时候超过最大堆栈大小的可能性。