闭包的了解

  1. 如何产生闭包?

    • 当一个嵌套的外部(子)函数援用了嵌套的内部(父)函数的变量(函数)时,就产生了闭包
  2. 闭包到底是什么

    • 应用chrome调试查看
    • 了解一:闭包是嵌套的外部函数(绝大部分人)
    • 了解二:蕴含被援用变量(函数)的对象(极少数人)
    • 留神:闭包存在于嵌套的外部函数中
  3. 产生闭包的条件

    • 嵌套函数
    • 外部函数援用了内部函数的数据(变量/函数)
        function fn1() {            var a = 2            var b = 3            function fn2() {    //执行函数定义就会产生闭包(不调用外部函数)                console.log(a)            }        }        fn1()                        

常见的闭包

  1. 将函数作为另一个函数的返回值
                    function fn1(){                var a =2                function fn2(){                    a++                    console.log(a)                }                return fn2            }            var f = f1()            f()//3            f()//4            
  1. 将函数作为实参传递给另一个函数调用

             function showDelay(msg,time){             setTimeout(function(){                 alert(msg)},time)         }         showDelay('123',2000)