闭包

闭包:解决变量的私有化问题
全局变量:谁都可以访问,修改
局部变量:有生命周期

function add(){
    var counter = 0;    //局部变量-实现全局变量的生命力
    plus = function (){ //plus是全局函数
        counter++;
        console.log("counter = "+ counter); //全局变量的生命周期(伪全局变量)
    }
    
}
add();  //counter被初始化
plus();
plus();
function add(){
    var counter = 0;    //局部变量-实现全局变量的生命力
    var plus = function (){ //plus是全局函数
        counter++;
        console.log("counter = "+ counter); //全局变量的生命周期(伪全局变量)
    }
    return plus;
}
var plus = add();   //counter被初始化
plus();
plus();
function add(){
    var counter = 0;    //局部变量-实现全局变量的生命力
    return function (){ //plus是全局函数
        counter++;
        console.log("counter = "+ counter); //全局变量的生命周期(伪全局变量);
    };
}
var plus = add();   //counter被初始化
plus();
plus();
//标准闭包
//函数立即执行   函数声明核函数执行放在一起
var plus = (function (){
    var counter = 0;    //局部变量-实现全局变量的生命力
    return function (){ //plus是全局函数
        counter++;
        console.log("counter = "+ counter); //全局变量的生命周期(伪全局变量);
    };
})();

plus();
plus();

你可能感兴趣的:(闭包)