2010-10-05 76 views
1

我这样做是出于习惯:在功能上编程的JavaScript,是否有任何惩罚返回回调,而不仅仅是调用回调?

function process(fn){ 
    // Some process that builds data  
    return fn(data); 
} 

并不总是必要返回回调,我想知道是否有做任何性能损失,超过简单地调用回调:

function process(fn){ 
    // Some process that builds data 
    fn(data); 
} 

如果是这样,或者确实如果不是,那为什么?

+2

你为什么问?你是否有性能问题,并怀疑这是罪魁祸首? (有些人开始对SO的这种可预测的反应感到恼怒,但这并没有使其有效) – 2010-10-05 22:54:13

+0

不,我主要问的是出于兴趣,因为我想尽可能多地学习函数式编程。 – stephband 2010-10-06 01:11:47

回答

3

两者之间没有显着的性能差异。

原因:将返回值添加到堆栈以供调用者使用是一件平凡的操作。

正如他们所说,这是de minimis

+0

这个答案也是如此。很好,很简洁!谢谢! – stephband 2010-10-06 01:13:38