如果我这样做:
var a = 0;
(function () {
var a = a; //want to make local a = global a
++a;
console.log("fn",a);
})();
console.log(a);
输出是:
fn NaN
0
为什么a
内部自执行功能变成了NaN
?
我知道如果我这样做会很好:
(function () {
var b = a;
++b;
console.log("fn",b); // fn 1
})();
但是如果我走第一个版本的方式,它就有NaN
问题了。
为什么会这样?