2010-08-17 8 views
4

Y at-il un différentiel de performance/mémoire entre les trois styles suivants?Javascript/jQuery question de conception re: performance

pièce A:

var func = function() { 
    // do some magic 
} 

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

pièce B:

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

pièce C:

function func() { 
    // do some magic 
} 

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

Vous ne devriez pas changer radicalement la question une fois posté :) –

+0

"drastiquement" est un peu beaucoup, innit? – Wells

+0

Oui, en réalité, le premier vs le troisième a plus d'implications et change la façon de faire de la question. –

Répondre

3

Il pourrait y avoir un peu, un peu (très peu) de meilleures performances pour l'expression de la fonction:

var func = function(){ 
}; 

C'est un appelé function expression. Le otherside, le function statement est votre troisième exemple:

function func(){ 
} 

déclarations de fonction sont converties en interne dans les expressions de fonction par ECMA-/Javascript, donc ce la raison pour laquelle il pourrait être slighty plus rapide, mais vraiment, rien à craindre (!).

Votre B: exemple montre une , qui a également aucune incidence sur la performance sur la A et C.

0

Il n'y a pas frappé de performance à proprement parler, il est plus d'une réutilisation/style, je dirais. Dans A et C, le func devient réutilisable, ce qui peut être utile dans certaines situations. Avec B, vous encapsulez des fonctionnalités souvent souhaitables.

Je préfère C car il est plus propre à lire et permet la réutilisation sans refactoring.