美文网首页
8 js之匿名函数(闭包)

8 js之匿名函数(闭包)

作者: 一枝妖孽 | 来源:发表于2018-05-29 20:58 被阅读0次
    /**
     * 闭包:在函数内部定义的函数,在外部调用
     * 
     * 作用:可以把一些函数私有化
     * 
     * 闭包 
     *  范式 ()()
     *  第一个参数是一个函数,函数中的参数为形参,在匿名函数中的所有方法都可以使用
     *  第二个括号内是实参
     *  
     *  下面的写法有以下好处
     *      1 可以让一些函数私有化
     *      2 可以让一些函数公开化
     *      3 在匿名函数中声明的属性在外部无法访问
     * 
     */
    
    //匿名函数====自己执行
    (function(a){
        alert("闭包函数中的"+a);
    })(5);// 5 是实际参数
    
    /*
     * ==========================
     */
    function Person(){
        function Student(){
            alert("aaaaaa");
        }
    }
    
    //调用 Student();
    Student();//Student undefined 未定义
    
    //随便谁都可以修改 a属性的值
    Person.a=5;
    
    /*
     * ==========================
     */
    (function(window){
        function A(){//私有的
            alert("AAAA");
            B();
            return {
                C:C,
                D:D
            };
        }
        function B(){//私有的
            alert("BBBBB");
        }
        
        function C(){//公开的
            alert("CCCC");
        }
        function D(){//公开的
            alert("DDDD");
        }
        window.A=A;//通过该方式,可以让一个函数称为公开的函数
        
    })(window);
    
    //window.A();
    
    var json=window.A();//拿到A的返回值{C:C,D:D}
    json.C();
    json.D();
    

    相关文章

      网友评论

          本文标题:8 js之匿名函数(闭包)

          本文链接:https://www.haomeiwen.com/subject/myxzjftx.html