2010-08-17 60 views
4

以下三种风格之间是否存在任何性能/内存命中差异?Javascript/jQuery设计问题重现:性能

附件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

你不应该在发布后大幅改变问题:) – 2010-08-17 18:05:32

+0

“激烈”是有点多,有价值吗? – Wells 2010-08-17 18:08:53

+0

是的,实际上,第一个和第三个有更多的含义并改变了对问题的处理。 – 2010-08-17 18:11:00

回答

3

有可能是一点点,稍微(真略)的函数表达式更好的性能:

var func = function(){ 
}; 

这是一个这样的叫function expression。该阿瑟赛德的function statement是你的第三个例子:

function func(){ 
} 

函数语句被ECMA-/Javascript内部转换成函数表达式,所以这就是为什么它可能是略低快,但说真的,没有什么可担心的理由(!)。

B:示例显示了一个,其中也有在Ç对性能没有影响。

0

有没有性能损失可言,它更多的是重复使用的/风格的东西,我会说。在A和C中,func都可以重用,这在某些情况下可能会有所帮助。使用B,你可以封装通常需要的功能。

我更喜欢C,因为它更清晰,无需重构即可阅读和启用重用。