闭包

    xiaoxiao2022-07-06  198

    function a(){ function b(){ var bbb=234; console.log(aaa); } var aaa=123; return b; } var glob =100; var demo=a(); demo(); //内部函数保存到外部一定生成闭包 function a(){ var num=100; function b(){ num++; console.log(num); } return b; } var demo=a(); demo(); //101 demo(); //102 //aAO{num:102}

    闭包 累加器

    function add(){ var count=0; function demo(){ count++; console.log(count); } return demo; } var count =add(); count(); count();

    可以做缓存

    function test(){ var num=100; function a(){ num++; console.log(num); } function b(){ num--; console.log(num); } return[a,b]; } var myArr=text(); myArr[0](); //101 myArr[1](); //100 function eater(){ var food=""; var obj={ eat:funtion(){ console.log("i am eating "+food); food=""; }, push:function(myFood){ food=myFood; } return obj; } var eater1=eater(); var eater2=eater(); eater1.push(‘banana'); eater1.eat(); function test(){ var arr=[]; for(var i=0;i<10;i++){ arr[i]=function(){ duncument.write(i); } } return arr; } var myArr=test(); for (var j=0;j<10;j++) { myArr[j](); } // 10 10 10 10 10 10 10 10 10 10 //函数定义时没有意义,执行的时候再去看

    变量私有化

    function Deng(name,wife){ var prepareWife="xiaowang" //私有化变量 this.name=name; this.wife=wife; this.divorce=function(){ this.wife=prepareWife; } this.changePrepareWife=function(target){ prepareWife=target; } } var deng=new Deng("deng","xiaoliu") deng.prepareWife // underfined
    最新回复(0)