function out(num){
(function (){
for(var i=0; i<num; i++){
console.log(i);
}
})();
console.log(i);
}
out(4);
//块级作用域。在FOR循环外部添加一个私有作用域。在匿名函数中定义的任何变量,都会在执行结束时被销毁。
因此,变量i只能在循环中使用,使用后就被销毁。而在私有作用域中能够访问变量num,是因为这个匿名函数是一个装饰,它能够访问包含作用域中的所有变量。