Eclipse génère 'La variable locale n'est jamais lue' lorsqu'une variable est déclarée à l'intérieur d'une fonction anonyme auto-exécutoire, et ne le fait pas lorsqu'elle est déclarée dans la portée globale.
Exemple auto-exécutoire :
var MODULE = {};
(function (module) {
// THIS LINE GENERATES WARNING
var FOO_BAR_ANON = {};
function Foo ( ) {
if ( this instanceof Foo ) {
// THIS IS WHERE VARIABLE IS USED
this.fooBar = FOO_BAR_ANON;
} else {
return new Foo( );
}
}
module['Foo'] = Foo;
})( MODULE );
Exemple de portée globale, aucun avertissement n'est généré :
var MODULE = {};
var FOO_BAR_GLOBAL = {};
function FooGlobal ( ) {
if ( this instanceof FooGlobal ) {
this.fooBar = FOO_BAR_GLOBAL;
} else {
return new FooGlobal( );
}
}
MODULE['FooGlobal'] = FooGlobal;
Pourriez-vous, s'il vous plaît, expliquer pourquoi cet avertissement est généré en premier lieu, et comment le faire taire ?