定义
    简单来说js中所有function都是闭包,这个官方或者部分学说也不会认可,个人理解就是
    能够访问自由变量的function就会形成闭包。

    闭包使用场景

    嵌套function语法

    1. var scope = "global scope";
    2. function checkscope(){
    3. var scope = "local scope";
    4. function f(){
    5. return scope;
    6. }
    7. return f;
    8. }
    9. var foo = checkscope();
    10. foo();

    $.ajax

    $.ajax({
      url,
      success:function(){//},
      error:function(){//}
    })
    

    参考jquery语法

    (function(win){
      //
    })(window)
    

    总结:

    1. 即使创建它的上下文已经销毁,它仍然存在(比如,内部函数从父函数中返回)
    2. 在代码中引用了自由变量