¿Cómo evitar las variables globales en JavaScript?

Todos sabemos esovariables globales Son todo menos prácticas recomendadas. Pero hay varios casos en los que es difícil codificar sin ellos. ¿Qué técnicas utilizas para evitar el uso de variables globales?

Por ejemplo, dado el siguiente escenario, ¿cómo no usaría una variable global?

Código de JavaScript:

var uploadCount = 0;

window.onload = function() {
    var frm = document.forms[0];

    frm.target = "postMe";
    frm.onsubmit = function() {
        startUpload();
        return false;
    }
}

function startUpload() {
    var fil = document.getElementById("FileUpload" + uploadCount);

    if (!fil || fil.value.length == 0) {
        alert("Finished!");
        document.forms[0].reset();
        return;
    }

    disableAllFileInputs();
    fil.disabled = false;
    alert("Uploading file " + uploadCount);
    document.forms[0].submit();
}

Marcado relevante:

<iframe src="test.htm" name="postHere" id="postHere"
  onload="uploadCount++; if(uploadCount > 1) startUpload();"></iframe>

<!-- MUST use inline JavaScript here for onload event
     to fire after each form submission. -->

Este código proviene de un formulario web con múltiples<input type="file">. Sube los archivos uno a la vez para evitar grandes solicitudes. Lo hace porENVIARingrese al iframe, a la espera de la respuesta que dispara el onrame onload, y luego activa el siguiente envío.

No tiene que responder a este ejemplo específicamente, solo lo proporciono como referencia a una situación en la que no puedo pensar en una forma de evitar las variables globales.

Respuestas a la pregunta(10)

Su respuesta a la pregunta