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 方法调用在方法名后面添加()

  • 相关阅读:
    内部类
    三大修饰符:static、final、abstract
    面向对象三大特性
    类和方法
    Vue-创建工程+element UI
    xshell连接虚拟机较慢问题 -----已解决
    Hbase配置
    Hive的安装配置
    Hive内容+配置
    Redis全局命令
  • 原文地址:https://www.cnblogs.com/qinbb/p/5764844.html
Copyright © 2011-2022 走看看