函数表达式

function out(num){
    (function (){
        for(var i=0; i<num; i++){
            console.log(i);
        }
    })();
    console.log(i);
}
out(4);

//块级作用域。在FOR循环外部添加一个私有作用域。在匿名函数中定义的任何变量,都会在执行结束时被销毁。

因此,变量i只能在循环中使用,使用后就被销毁。而在私有作用域中能够访问变量num,是因为这个匿名函数是一个装饰,它能够访问包含作用域中的所有变量。

猜你喜欢

转载自www.cnblogs.com/Bluelingling/p/9810509.html