zoukankan      html  css  js  c++  java
  • 理解闭包的含义以及他的使用

    1、什么是闭包,
      闭包就是能够读取其它函数内部的变量。

    首先我们来看一段代码:
    function a(){ var n = 0; function inc() { n++; console.log(n); } inc(); inc(); } a(); //控制台输出1,再输出2

    再来看一段代码:
    function a(){
        var n = 0;
        this.inc = function () {
            n++; 
            console.log(n);
        };
    }
    var c = new a();
    c.inc();    //控制台输出1
    c.inc();    //控制台输出2

    这就是闭包,是不是很简单!

    这里 inc 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。再来看一段代码:

    function a(){
        var n = 0;
        function inc(){
           n++; 
    console.log(n); } return inc; } var c = a(); c(); //控制台输出1 c(); //控制台输出2

    看看是怎么执行的:

    var c = couter(),这一句 couter()返回的是函数 inc,那这句等同于 var c = inc; 

    c(),这一句等同于 inc();  注意,函数名只是一个标识(指向函数的指针),而()才是执行函数。

    后面三句翻译过来就是:  var c = inc;  inc();  inc();,跟第一段代码没有区别。

  • 相关阅读:
    整数子数组求最大和
    四则运算实现
    四则运算
    2015年大二下学期读书计划
    java变量和数据类型
    jdk的安装和java的入门概念
    数据库的设计
    多表查询
    数据约束和外键
    表数据的简单查询语句
  • 原文地址:https://www.cnblogs.com/liangxiaoli/p/7101812.html
Copyright © 2011-2022 走看看