JavaScript: "Interdire les principaux identificateurs _ dans les identificateurs" en tant qu'option dans JSLint

StackOverflow https://stackoverflow.com/questions/403454

  •  03-07-2019
  •  | 
  •  

Question

Je viens de commencer à écrire mon propre cadre JavaScript (juste pour l'expérience d'apprentissage) et préfixé certains membres privés avec un _ , comme par exemple:

var _isFireBugEnabled = function () {
    return (window.console && window.console.firebug);
};

Lorsque j'ai utilisé mon code contre JSLint de Crockford, avec les options recommandées on m'a dit de ne pas utiliser un _ comme identifiant.

Ma question est la suivante, Pourquoi JSLint m’avertit-il de ne pas utiliser un _ comme identifiant?

Y a-t-il des effets secondaires ou des implications qui me manquent ici?

PS. Pour autant que je sache, cela n’est pas documenté dans le livre .

Était-ce utile?

La solution

La raison en est que Douglas Crockford déteste environ 78% du langage Javascript *. Beaucoup de gens pensent qu'il est un peu strict et, en fait, de nombreuses bibliothèques utilisent des traits de soulignement importants dans le code de production. Je ne vois pas grand chose de mal avec ça. Il n'y a pas d'effets secondaires.

De plus, le symbole '$', et non le trait de soulignement, était mis de côté pour "système". code par la spécification ECMA .

  

de l'ECMA 262, section 7.6:

     

Cette norme spécifie un départ   de la grammaire donnée dans le Unicode   standard: le signe dollar ($) et le   le tiret bas (_) est autorisé n'importe où   dans un identifiant. Le signe dollar est   destiné à être utilisé uniquement dans   code généré.

* Remarque: je suis facétieux. Il ne déteste vraiment que la moitié environ et il a généralement de bonnes raisons. Je ne suis pas d'accord avec Crockford, mais il a généralement très raison.

Autres conseils

J'ai effectivement envoyé un mail à Crockford à ce sujet. C'était sa réponse:

  

Je pense que _ devrait être réservé à   implémentation du code système, et non   utilisé par les applications.

Je ne suis pas du tout d’accord avec lui, j’ai tendance à utiliser _ pour préfixer les membres véritablement privés de mes propres cours, car cela indique clairement ce qui est privé. Caja de Google a quelques règles concernant l'utilisation de _, mais rien qui puisse causer des problèmes avec ce que vous décrivez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top