2010-09-13 9 views
22

Mi código:
Nota: El objeto deslizante se declara pero omitió en el siguiente fragmento de código para una mejor legibilidad
JavaScript: JSLint lanza "Read Only

"use strict"; 
/*global arrayContainer, SliderInstance, DomObjects */ 
arrayContainer = new Slider.constructArray(); 
SliderInstance = Object.beget(Slider); 
DomObjects = { 

    animationContainer: document.getElementById('animationContainer'), 
    buttonRight: document.getElementById('buttonRight'), 
    buttonRightDots: document.getElementById('buttonRightDots'), 
    ieEffectImg: document.getElementById('ie_effectIMG')   
}; 


Esto es lo que produce JSLint (y en los otros dos objetos, SliderInstance y DomObjects)

Error: 
Problem at line 3 character 1: Read only. 

arrayContainer = new Slider.constructArray(); 

Problem at line 3 character 1: Stopping. (27% scanned). 


¿Cómo satisfago los requisitos de JSLint? ¿Qué significa "Solo lectura"? ¿media?

Respuesta

44

Prueba esto:

/*global arrayContainer:true, SliderInstance:true, DomObjects:true, document, Slider*/ 

Informa JSLint que estas variables globales se asignan intencionadamente.

+1

Tiene un buen ojo y una buena comprensión de JSLint. Eso funcionó bien. Los documentos JSLint dicen: "Opcionalmente, cada nombre puede ir seguido de dos puntos, verdadero o falso, cierto indica que la variable puede ser asignada por este archivo y falso, lo que indica que no se permite la asignación, que es la predeterminada". Algunas preguntas interesantes surgen de esta respuesta. 1) ¿Por qué no importa qué booleano asigno al objeto del documento global? Y más importante aún: 2) ¿Por qué JSLint o JavaScript se preocupan por dónde asigna objetos globales? – nottinhill

+2

Oh, esto es para evitar asignar objetos globales por accidente (por ejemplo, olvidando la palabra clave var y escribiendo 'document = $ ('# attachment_document')' – glebm

+1

Además, el propio JavaScript no se preocupa donde los asigne, solo JSLint sí. – glebm

6

uso

/*global arrayContainer:true, SliderInstance:true, DomObjects:true */ 

ver doco en 'variables globales' - el 'verdadero' dice que este archivo se puede asignar a esas variables.