JavaScript中的函数范围如何工作?
答案 0 :(得分:4)
// Create a new function = new scope
(function() {
var a = 1; // create a new variable in this scope
if (true) { // create a new block
var a = 2; // create "new" variable with same name,
// thinking it is "local" to this block
// (which it isn't, because it's not a block scope)
}
alert(a); // yields 2 (with a block scope, a would still be 1)
})();
alert(typeof a); // yields "undefined", because a is local to the function scope above