如果我这样做:本地的Javascript范围界定问题
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
问题。
这是怎么发生的?
我不知道为什么它确实是,但我试着用'VAR一个= window.a'并适当地表现 – Ibu 2012-07-12 17:32:35
@Ibu嗯这是奇数... – Neal 2012-07-12 17:33:03
,因为所有的全局变量在窗口范围 – jagm 2012-07-12 17:36:48