# 闭包
    概念： 闭包是由函数及其引用环境组合而成，一般通过在匿名函数中引用外部函数的局部变量或全局变量构成
    所以： 闭包=函数 + 引用环境
    闭包对闭包外的环境引入是直接引用，编译器检测到闭包，会将闭包使用的外部变量分配到堆上
    如果函数返回的闭包使用了该函数的局部变量(参数或函数内部变量):
        1. 多次调用该函数，返回的多个闭包所引用的外部变量是多个副本， 原因是每次调用函数都会为局部变量分配内存
        2. 用一个闭包函数多次， 如果该闭包修改了其使用的外部变量， 则每一次调用改闭包对该外部变量都有影响，因为闭包函数共享外部引用
        
    如果一个函数调用返回的闭包使用全局变量，则每次调用都会影响全局变量
    如果函数返回的闭包引用的是全局变量a，则多次调用该函数返回的多个闭包引用的都是同一个a， 同理调用一个闭包多次用的也是同一个a,此时如果闭包
    中修改了a值的逻辑则每次闭包调用都会影响全局变量a的值， 使用闭包的目的是为了减少全局变量，所以闭包引用全局变量不是好的编程方式。
    同一个函数返回的多个闭包共享该函数的局部变量 
   