定义:闭包就是一个函数

条件:一个函数去嵌套另外一个函数,里边的函数就是闭包

function  f1(){

       function f2(){

 

}

}

特点:闭包函数有权访问父级环境的变量信息。

JS高级学习历程-5

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>14-闭包</title>
 6      <script type="text/javascript">
 7        //简单闭包
 8        //以下f1函数,只要执行完毕,name和addr变量就被销毁了
 9        function f1(){
10            var name="tom";
11            var addr="beijing";
12            function f2(){
13                console.log(AO.name+"--"+AO.addr);
14            }
15            return f2;
16        }
17 
18        //ff是f2函数的引用,因此调用ff函数的效果与调用f2函数效果一致
19        var ff = f1();
20 
21        //name和addr由于f1函数执行完毕,会被销毁
22        //ff()函数执行后也可以访问到name和addr的信息
23        //原因:name和addr在
24 
25        //name和addr由于f1函数声明好之后,已经“固定”为f2执行环境内部AO的属性了
26        //和外部环境的变量没有直接交互关系。
27 
28        //name和addr由于f1函数执行完毕,本身的作用域链被销毁
29        //但是f2函数内部的AO并没有被销毁,还有ff来指引它
30 
31        ff(); //tom--beijing
32      </script>
33 </head>
34 <body>
35     
36 </body>
37 </html>
14-闭包

相关文章: