$.extend() avec des fonctions

Je suis en train d'écrire un plugin jQuery qui ont besoin de fonctions de rappel qui sont exécutées, par exemple, lorsqu'une option est choisie à partir de la <select> le plugin est appliqué.

J'ai vu des plugins qui vous permettent de définir des fonctions dans les options vous transmettre, comme ceci:

$('div.foo').pluginBar({ 
    option1: 'red',
    someEvent: function() {
        //Do stuff
    }
});

Je veux être en mesure de définir une valeur par défaut someEvent fonction dans mon code du module, mais si l'utilisateur définit cette fonction dans les options qu'ils passent, il doit remplacer la fonction par défaut. Est-ce possible avec $.extend(), ou suis-je regarde dans le mauvais endroits?

J'ai eu un coup d'oeil à la plugin de création de tutoriel, mais je ne pense pas qu'il va le comportement par défaut de fonctions n'importe où. J'ai lu des choses sur l'utilisation d'un init: fonction, mais je préfère juste être en mesure de définir une fonction (à l'intérieur de le plugin espace de noms) et de le modifier avec les options passées à la plugin.

  • Désolé, c'était plus d'une frustration personnelle commentaire. Sera supprimer.
  • En JavaScript (contrairement à la plupart des autres grandes langues actuelles), les fonctions sont des objets de première classe. Cela signifie que vous pouvez faire la même chose avec les références de fonction que vous pouvez faire avec n'importe quel autre type d'objet de référence, y compris le présent. Les réponses montrent comment, mais le point essentiel à retenir est que la fonction de références sont des valeurs comme les références de l'objet (parce qu'ils sont les références de l'objet). C'est extrêmement utile. 🙂
  • Merci beaucoup pour l'explication.
InformationsquelleAutor Bojangles | 2011-12-04