zoukankan      html  css  js  c++  java
  • 闭包

    “官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

    function a(){
      var i = 0;
      function b(){
       alert(++i);
      }
      return b;
    }
    var c = a();
    c();
    

      

    这段代码有两个特点:
      1、函数b嵌套在函数a内部;
      2、函数a返回函数b。
    这样在执行完var c=a( )后,变量c实际上是指向了函数b,再执行c( )后就会弹出一个窗口显示i的值(第一次为1)。这段代码其实就创建了一个闭包,为什么?
    因为函数a外的变量c引用了函数a内的函数b,就是说:
    当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。
     

    function mytest() {
       for(var i = 0; i < 5; i ++)
          setTimeout(function(){ console.log(i);},0);
    }

    var c =mytest();

    c();

    先看一下定义:
    setTimeout(code,millisec)
    参数 描述
    code 必需。要调用的函数后要执行的 JavaScript 代码串。
    millisec 必需。在执行代码前需等待的毫秒数。

  • 相关阅读:
    zipalign内存对齐优化
    反编译 waring...
    android.os.NetworkOnMainThreadException
    android:LayoutInflater
    Notification NotificationManager RemoteViews PendingIntent
    WebView WebViewClient WebChromeClient
    寒假1
    冻死可怕了
    一个人失眠
    军训快乐
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/4037134.html
Copyright © 2011-2022 走看看