• 闭包


    闭包的概念:子函数可以调用父函数的局部变量,如果子函数得不到释放,整个作用域链都会保留。处理不好会占内存。

    开始我主要是对一道面试题不理解:

    function say667() {
    var num = 666;
    var sayAlert = function() { alert(num);}
    num++;
    return sayAlert;
    }
    var sayNumba = say667();
    sayNumba();

    分析预解析
    var seyNumba;
    sayNuba=say667();
    function say667(){
      var num,sayAlert;
      num=666;
      sayAlert=function() { alert(num);}
      num++;
      return function(){alert(num);}
    };
    sayNumba=function(){alert(num);}
    sayNumba();
    如果funtion a里面包含function b;a return b;在a的外面,c调用a,就相当于c调用b;,b在被调用,所以a内的东西得不到释放;
    当执行到var sayNumba=say();这句话的时候,say667执行一一遍,num++了,并且将sayAlert赋值给了sayNumba;所以调用sayNumba的时候弹出667了。
  • 相关阅读:
    echo
    shell
    grub
    find
    脚本案例
    dd if= of= MBR
    cat <<EOF> file
    fieldset——一个不常用的HTML标签
    闪烁图片
    跑马灯效果
  • 原文地址:https://www.cnblogs.com/learnings/p/5808895.html
Copyright © 2020-2023  润新知