-1

JavaScript 中的函数作用域是如何工作的?

4

1 回答 1

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

试试看:http: //jsfiddle.net/9yr9U/

于 2012-06-15T09:53:30.377 回答