zoukankan      html  css  js  c++  java
  • 闭包

     $('div').click(function () {
                   var timer = -1;
                   return function () {
                       if (timer > 0) {
                           console.log(false);
                           return false;
                       } else {
                           timer = setTimeout(function () {
                               timer = -1;
                           }, 5000);
                           console.log(true);
                           return true;
                       }
                   };
               }());
    

      实际上可以这样来理解,为div绑定click事件的时候 执行了外层function,这个函数的返回值是内层函数,因此,将内层函数绑定到了click事件上。同时,内层函数引用了外层函数的变量,该变量不会被回收。

      注:在同一个作用域链中定义的所有闭包共享同一个变量或私有变量,如:

      

    function constfuncs(){
             var funcs = [];
             for(var i=0;i<10;i++) {
                 funcs[i] = function(){return i;};
               }
               return funcs;
     }  
     var funcs = constfuncs();
     console.log(funcs[5]());//10,全部都返回10

    funcs[0],funcs[1],...,funcs[9]共享变量i

  • 相关阅读:
    Rest
    docker-4
    Arrays.asList
    docker-3
    docker
    docker
    linux-ss
    jackson
    Java将图片的路径转为Base64,VUE前端显示
    java base64视频存到本地或服务器
  • 原文地址:https://www.cnblogs.com/rellame/p/5262648.html
Copyright © 2011-2022 走看看