de cadrage Javascript local Si je fais ceci:question
var a = 0;
(function() {
var a = a; //want to make local a = global a
++a;
console.log("fn",a);
})();
console.log(a);
La sortie est:
fn NaN
0
Pourquoi a
l'intérieur de la fonction d'auto exécution deviennent NaN
?
Je sais que cela fonctionne très bien si je fais:
(function() {
var b = a;
++b;
console.log("fn",b); // fn 1
})();
Mais si je vais le chemin de la première version, il a la question NaN
.
Pourquoi cela se produit-il?
Je ne sais pas pourquoi il fait ça, mais j'essayé d'utiliser 'var a = window.a' et il comporte de façon appropriée – Ibu
@Ibu hmmm qui est étrange ... – Neal
parce que toutes les variables globales sont dans la portée de la fenêtre – jagm