Web

JS中的闭包和惰性函数

2019-08-20  本文已影响6人  追逐_chase
web.jpeg

闭包

闭包的作用
function fn(){
    var a =10;
    return function(){
        a++; 
        return  console.log(a);
        
    };
}

//访问 局部变量 
var f = fn();
f();
f();
// 如果 return a ; 就是延长局部变量的声明周期
function demo (){
        var name = "cc";
        var age = 18;

        return function(){

            return {
                getName:function(){

                    return name;
                },
                setName:function(newName){
                    if(newName){
                        name = newName;
                    }

                    return name;
                },
                getAge:function(){
                    return age;
                },
                setAge:function(newAge){
                    if(newAge < 0){
                        newAge = 0;
                    }
                    
                    return (age = newAge);
                }
            }
        }
    }

惰性函数
 //惰性函数: 做一次性初始化的操作
    function foo(){
        //初始化操作
        console.log("foo");
        //更新函数的执行内容,更新函数体
        foo = function(){
            console.log("oo-foo");
            
        }
        
    }

    foo();
    foo();

立即执行函数

 (function(window){
        var name_cc = "测试";

        window.name_cc = name_cc;
        console.log(window);
        
    })(window);
    
    console.log(name_cc);
不同形式的立即执行函数
   //匿名函数
    +function(){
        console.log("1");
        
    }();

//匿名函数
    -function(){
        console.log("2");
    }();


 //匿名函数
    !function(){
        console.log("3");
    }();



上一篇下一篇

猜你喜欢

热点阅读