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

  • 相关阅读:
    Spring MVC
    Spring
    MyBatis
    Java Listener
    Java Filter
    JSTL
    EL
    pyltp安装
    美团面经-java开发
    oppo面经-java开发
  • 原文地址:https://www.cnblogs.com/qinbb/p/5764844.html
Copyright © 2011-2022 走看看