• 走进闭包1


    闭包有些复杂而且工作中也非常少的用到,但是面试官们却非常喜欢考,为什么?因为够复杂,能够体现面试人员是个高水平的,换句话说类似于本科毕业证一样的存在。尽管知道并不是所有大学生都对这个工作理解很深,但是至少大学生对该工作理解较深的人数,比没上大学的要多得多,这倒是事实。

    而这个问题也是差不多的存在,知道闭包的总比不知道的要厉害,尽管它自身没什么卵用。

    下面就是一个简单的闭包:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6     </head>
     7     <body>
     8         
     9         <script>
    10         //闭包可以访问函数的局部变量,并让其长期驻留内存
    11             function a(){
    12                 var i=0;
    13                 return function(){
    14                     return ++i;
    15                 }
    16             }
    17             var fun=a();
    18             alert(fun());
    19             alert(a()())
    20     
    21             
    22             
    23                     function fn1(num) {//发动,1
    24                 alert(num);
    25                 return function fn2() {//发动,没有参数,向上查找1
    26                     alert(num);
    27                     return function fn3(num) {//发动,传入参数3,返回3
    28                         alert(num);
    29                         function fn4() {//不发,加了return才会有返回值
    30                             alert(num)
    31                         }
    32                     }
    33                 }
    34         
    35         }
    36         var fn2 = fn1(1);
    37         fn2(2)(3)(4);
    38 
    39         </script>
    40         
    41     </body>
    42 </html>

    简单来说,就是在函数的返回值那一块再添加一个函数。

    这个函数因为是属于上一个函数内部的,所以可以调用,获得其中的值,于是,如果将这个值返回的话,就可以做到:【外部变量,函数可以获得内部变量的值】,仅此而已的东西。

    当然,目的尽管就这么多,但是起中国的花样也是不少的。

  • 相关阅读:
    「CF1027」
    「CF1000G Two-Paths」
    「CF1009」
    「CF1008」
    Vi的按键(常用)
    【codeforces】Codeforces Round #643 (Div. 2)
    【codeforces】Codeforces Round #641 (Div. 2)
    【codeforces】 Codeforces Round #640 (Div. 4)
    【codeforces】Codeforces Round #642 (Div. 3)
    【codeforces】CF1345C Hilbert's Hotel
  • 原文地址:https://www.cnblogs.com/thestudy/p/6282291.html
Copyright © 2020-2023  润新知