2010-08-17 80 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,因爲它更清晰,無需重構即可閱讀和啓用重用。