Al escribir código como este JSLint se queja de variables globales implícitas:Evitar globales implicados en Javascript (JSLint)
var Test = (function(){
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}());
Test.fnc("hat");
(específicamente, 'implícita mundial: alerta 4')
Lo que se considera la forma correcta ¿para evitar esto? Mi respuesta instintiva es esto, pero no estoy convencido de que es 'correcto':
var Test2 = (function(global){
var alert = global.alert;
var fnc = function(x){
alert("pew: "+x);
};
return {
fnc: fnc
};
}(this));
Test2.fnc("hat");
Editar: El consenso parece ser que el problema no es el hecho de que estoy accediendo a un mundial, es más que no estoy diciendo jslint qué son los globales. Voy a dejar esto abierto un poco más para ver si alguien más ha contribuido, entonces elegiré una respuesta.
IIRC no las declaraciones de nombres de variables deben estar separadas por comas? –
@ZackTheHuman hay espacio separado. Resulta que JSLint dice que hay una coma separada. Siempre he usado una lista de espacios separados sin errores. Probablemente maneja ambos – Raynos
Tenga en cuenta que no debe haber un espacio entre el inicio del comentario y 'global'; de lo contrario, jslint no lo procesa. – oyenamit