Durante la scrittura di codice come questo JSLint lamenta globali implicite:Evitare globali Presenza in javascript (JSLint)
var Test = (function(){
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}());
Test.fnc("hat");
(specificamente, 'implicita globale: allarme 4')
Ciò che è considerato il modo corretto per evitare questo? La mia risposta istintiva è questo, ma non sono convinto che sia 'corretta':
var Test2 = (function(global){
var alert = global.alert;
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}(this));
Test2.fnc("hat");
Edit: Il consenso sembra essere che il problema non è il fatto che sto accedendo a livello globale, è più che non sto dicendo a jslint che cosa sono i globals. Lascerò questo tempo un po 'più lungo per vedere se qualcun altro ha inserito, quindi sceglierò una risposta.
IIRC le dichiarazioni dei nomi delle variabili non devono essere separate da virgola? –
@ZackTheHuman c'è spazio separato. Risulta che JSLint dice che la virgola è separata. Ho sempre usato una lista separata di spazi senza errori. Probabilmente gestisce sia – Raynos
Nota che non dovrebbe esserci uno spazio tra l'inizio del commento e 'globale' altrimenti jslint non lo elabora. – oyenamit