Je travaille sur un plugin jQuery, mais j'ai du mal à faire correctement mes variables. Voici un exemple de mon code:Comment évaluer correctement les variables dans jQuery?
(function($) {
$.fn.ksana = function(userOptions) {
var o = $.extend({}, $.fn.ksana.defaultOptions, userOptions);
return this.each(function() {
alert(rotate()); // o is not defined
});
};
function rotate() {
return Math.round(o.negRot + (Math.random() * (o.posRot - o.negRot)));
};
$.fn.ksana.defaultOptions = {
negRot: -20,
posRot: 20
};
})(jQuery);
J'essaie d'obtenir la rotation de la fonction privée pour être en mesure de voir la variable o, mais il ne cesse 'o est alertes à pas défini. Je ne suis pas sûr de ce que je fais mal.
+1 Puisque vous n'êtes pas exposer 'tourner 'En dehors du plugin, on peut aussi passer la variable en argument pour éviter d'avoir un état global inutile. – R0MANARMY
Cela peut être une question stupide, mais cela ne crée-t-il pas un surcoût supplémentaire? Je vais avoir beaucoup de fonctions qui auront besoin d'accéder à o, donc je passerais beaucoup autour de moi ... – safetycopy
@safetycopy: Eh bien, vous pouvez exposer 'o' à plus de fonctions, comme je le dis dans ma troisième approche, définissant 'o' dans la portée englobante. – CMS