2010-09-13 5 views
22

Mon code:
Remarque: l'objet Slider est déclarée mais omis dans l'extrait ci-dessous pour une meilleure lisibilité
JavaScript: JSLint lance « Lecture seule

"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')   
}; 


C'est ce que JSLint produit (et sur les deux autres Objets SliderInstance et DomObjects)

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

arrayContainer = new Slider.constructArray(); 

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


Comment satisfaire les exigences de JSLint? Que fait "Lecture seule". signifier?

Répondre

44

Essayez ceci:

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

Informe JSLint que ces GLOBALS sont intentionnellement assignés.

+1

Vous avez un œil vif et une bonne compréhension de JSLint. Cela a bien fonctionné. JSLint Docs dit: "Chaque nom peut éventuellement être suivi d'un deux-points et soit vrai ou faux, vrai indiqué que la variable peut être assignée par ce fichier, et faux indiquant que l'attribution n'est pas autorisée, ce qui est la valeur par défaut." Certaines questions intéressantes découlent de cette réponse. 1) Pourquoi le booléen que j'attribue à l'objet document global n'a-t-il pas d'importance? Et plus important encore: 2) Pourquoi JSLint ou JavaScript se soucient-ils des objets globaux? – nottinhill

+2

Oh, ceci pour éviter d'assigner un objet global par accident (par exemple en oubliant le mot-clé var et en écrivant 'document = $ ('# attachment_document')' – glebm

+1

Aussi, JavaScript lui-même ne se soucie pas de l'assigner, seul JSLint fait – glebm

6

utilisation

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

voir doco sous la rubrique 'Variables globales' - le 'vrai' dit que ce fichier peut attribuer à ces variables.