If I do this:
var a = 0;
(function () {
var a = a; //want to make local a = global a
++a;
console.log("fn",a);
})();
console.log(a);
The output is:
fn NaN
0
Why does a
inside of the self executing function become NaN
?
I know it works fine if I do:
(function () {
var b = a;
++b;
console.log("fn",b); // fn 1
})();
But if I go the way of the first version, it has the NaN
issue.
Why is this happening?