javascript-闭包

      闭包:允许使用内部函数(即函数定义和函数表达式位于另一个函数的函数体内),这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数,当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包

优缺点:

优点:闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。

缺点:会增大内存使用量,应用闭包场合主要是为了:设计私有的方法和变量。


//声明一个闭包  
    function a1()  
    {  
        var week="Sunday";  
        function a2()  
        {  
            console.log('星期:'+week);  
        }  
        return a2;  
    }  
    var aa=a1();  
    //以上代码已经形成一个闭包
    //a1执行后返回a2函数,函数对象对aa进行赋值(引用赋值)  
    //调用闭包函数aa,使其发生执行  
    //aa和a2是同一个function的两个不同名字,a2是局部变量,aa是全局变量   
    ff();//Sunday  
//闭包使用规则:  
   //同一个闭包机制可以创建多个闭包函数出来,它们彼此没有联系,都是独立的,并且每个闭包可以保存自己的信息。  
   function a1(num){  
    //外部变量:变量、参数、函数  
    //var num=100;//num就是a1函数的形参,也是其局部变量  
    function a2(){//a2可以访问a1中的变量num  
        console.log("数字:"+num);//100  
    }  
    return a2;  
   }  

猜你喜欢

转载自blog.csdn.net/limeijng/article/details/80073871