gli assistenti hanno un ambito all'interno del plug-in, che è una funzione anonima, e non è possibile accedere alle variabili dichiarate al suo interno.
Se si desidera testarlo, rilasciare la parola chiave var
davanti alle funzioni. Questo dichiarerà le funzioni come globali (le assegnerà all'oggetto finestra), dando loro la possibilità di essere visibili dall'ambito della finestra (chiamando someHelperFunction
o window.someHelperFunction
).
così, per la prova:
(function($) {
someHelperFunction = function(s, d) {
return s*d;
}
someOtherHelperFunction = function(s) {
return s*2;
}
// here goes the normal plugin code
})(jQuery);
dopo che il test è finito, aggiungere nuovamente la parola chiave var
.
Aggiornamento
penso che un approccio migliore sarebbe quello di raggruppare i funzioni testabili in un oggetto - e costruire un'API. Poi, sullo stesso principio, si potrebbe fare che api visibile nella portata globale o no:
(function($, global) {
someHelperFunction = function(s, d) {
return s*d;
}
someOtherHelperFunction = function(s) {
return s*2;
}
var api = {
someHelperFunction: someHelperFunction,
someOtherHelperFunction: someOtherHelperFunction
};
// decide whether you want to expose your api or not
if(makeGlobal) {
global.api = api;
}
})(jQuery, this);
fonte
2011-03-30 19:48:07
Poiché non è possibile accedere ai metodi dall'esterno, non è possibile. –