zoukankan      html  css  js  c++  java
  • 快速理解JS的闭包

    /*
    *闭包:1.在函数内部改变变量值,不影响函数外全局变量(相当于JAVA中私有变量)
    *        2.调用闭包后,最后产生的变量值并不释放。
    *        3.任何人调用闭包,闭包里面的值并不互相影响,都是最初定义的值。
    */
    例子讲解1:
    var name='window';
    var qinbb={
    name:'qinbb',
    getName:function(){

    console.log(this);//这里的this指的是对象qinbb  return this.name;就对了

    return function(){
    console.log(this);//function的this指的 Window {external: Object, chrome: Object, document: document, qinbb: Object, speechSynthesis: SpeechSynthesis…}
    return this.name;//这里的this指的是return function()的this,因此是全局变量var name='window';
    };
    }
    };
    qinbb.getName()();//输出:'window' 方法调用在方法名后面添加(),若是方法里面还有方法就要在后面再添加();
    例子讲解2、3:
    function a(){
    var n=1;
    function b(){
    n++;
    return alert(n);
    }
    return b();//若是 return b;
    }
    var c=a();//输出2
    var d=a();//输出2
    //若是 return b;
    var c=a();
    c();//输出2 方法调用在方法名后面添加()

  • 相关阅读:
    C语言实例解析精粹学习笔记——31
    进程调度(CFS)
    qemu中 guest与 host 网络配置
    网卡全虚拟化、virtio、vhost-net性能测试
    网桥与TAP设备
    进程调度
    中断、异常和系统调用
    文件系统
    Linux内核内存管理
    QEMU 设备模拟
  • 原文地址:https://www.cnblogs.com/qinbb/p/5764844.html
Copyright © 2011-2022 走看看