寫一個返回閉包的函數


1.閉包函數是指有權訪問另一個函數作用域中的變量的函數
2.創建閉包函數最常見的方式是在一個函數內創建另一個函數,通過另一個函數訪問這個函數的局部變量
3.閉包的特點:1函數嵌套函數,
2 函數內部可以引用外部的參數和變量
3
參數和變量不會被垃圾回收機制回收
4.閉包的優點:1 希望一個變量長期駐扎在內存中    *  
 2
避免全局變量的污染 *
       3
私有變量存在

5.閉包的實現 1:函數嵌套函數    *  
2
外層函數返回內層函數 *
3
外面有一全局變量接受外層函數

function fun1() {
        var sum=0;
        function fun2() {
            sum++;
            return sum
        }
        return fun2
    }
    var s=fun1();
    console.log(s());

 

//  自執行函數  的閉包
    //
    var fun3=function () {
       var a=3;
       return{
           b:7,
           sum:function () {
               return this.b+a;
           }
       }
    }();
    console.log(fun3.sum());
/*
        *  把函數名當參數調用
        *  回調函數
        *
        * */
    function b() {
        console.log("b");
    }
    function c() {
        console.log("c");
    }
    function d(fun) {
        fun();
    }
    d(b);
    d(c);
    // 循環
    var num=0;
    function a1(fun) {
        fun(a1);
    }
    function a2(fun) {
        num++;
        console.log(num);
        if(num>10) return;
        fun(a2);
    }
    a1(a2);
// 事件函數  也是 回調函數
    this.addEventListener("click",clickHandler);
    function clickHandler(e) {

    }
    setInterval(animation,16);
    function animation() {

    }

 

 返回閉包時牢記一點:返回函數不要引用任何循環變量,或者后續會發生變化的變量!

 

 

 

 
 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM