estoy comprobando si se define o no una variable, y si no se define explícitamente Voy a definirla haciendo:'variable' se utilizó antes de que se definió
if (typeof(aVariable) == 'undefined') {
var aVariable = value;
}
Debido a que la variable es no definido JSLint advierte que se usa antes de que se defina, y eso es exactamente lo que quiero.
¿Cómo puedo superar esto?
quiero para permitir la definición de las variables que hacen esto explícitamente:
<script>
var aVariable = value;
</script>
<script src="myScript.js"></script>
Así que todos los que se va a incluir este script puede personalizar algunas de las propiedades. Y me temo que no puedo cambiar esta lógica porque ya se está utilizando en cientos de sitios web de esta manera.
Desplácese hacia abajo para las respuestas/soluciones, porque he respondido a mi propia pregunta Stack Overflow no aparece. Asegúrate de no extrañarlos.
¿Hay una penalización de rendimiento para la solución 2? O cualquier efecto secundario? ¿Supongo que no podría cambiar el foo global? – Vanuan
La Solución 2 parece tener un efecto secundario: la página se colgó poco después de la carga en Safari (en iOS 6.1.3) cuando un archivo JS tenía la fila 'var window = window || {}; '. Chromium (en Ubuntu 12.04) no tuvo tal problema. Extraño. –