JS中的闭包


讲解函数上下文

    上下文
  • 全局上下文
  • 函数上下文
    函数上下文在什么时候产生
  • 函数执行的时候会形成自己的上下文(环境,对象)
    函数上下文在时候销毁
  • 函数执行结束的时候就结束

讲解什么是闭包

什么是闭包

    <li>javascript变量属于本地或全局作用域</li>
    <li>全局变量能够通过闭包实现局部(私有)</li>
    <ul>
       <li>只有调用函数才能改变变量 </li>
    </ul>

产生闭包

  • 是通过调用函数时返回其内部的函数

闭包的副作用

    产生内存泄露
  • 比如说我本来要销毁函数的上下文,被强行保存下来了,

通过闭包能实现外界访问函数体内部的变量

function text() {
     var num =0 

    return function inner() {
          num+=1
          console.log(num)
     }
}
//text的函数上下文已经被inner紧紧包裹住了,可以通过变量保存环境
var add = text()
add()
add()
add()
add()


文章作者: Bibooo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bibooo !
评论
  目录