Javascript / jQuery 设计问题:关于性能的疑问

4
有没有性能/内存损失差异,以下三种方式哪种更好?
样例A:
var func = function() {
    // do some magic
}

$("#div").somePlugin({someEvent: func});

附录 B:

$("#div").somePlugin({someEvent: function() {
    // do some magic
});

展示C:
function func() {
    // do some magic
}

$("#div").somePlugin({someEvent: func});

2
发帖后不应该大幅改变问题 :) - Nick Craver
“drastically” 太过了,是不是? - Wells
是的,实际上,第一种和第三种有更多的含义,并且改变了问题的范围。 - Nick Craver
@Nick 好的,让我们看看一个令人惊叹的回应,让人印象深刻! - Wells
2个回答

3

对于函数表达式,可能会有稍微(真的只是稍微)更好的性能:

var func = function(){
};

这是一个所谓的函数表达式。另一方面,函数声明是您的第三个示例:

function func(){
}

函数声明会被ECMA/Javascript内部转换为函数表达式,所以这可能是略微更快的原因,但实际上没有什么可担心的。

你的B:示例展示了一个匿名函数,它对AC也没有性能影响。


0

这并不会对性能造成影响,更多的是一种重用/风格的问题。在A和C中,func变得可重用,在某些情况下非常有帮助。而B则封装了功能,这通常是令人向往的。

我更喜欢C,因为它更易于阅读,并且可以在不进行重构的情况下实现重用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接