个人对闭包的理解

  什么是闭包?

闭包就是在函数的外部可以访问到函数内部的变量。官方的解释是,闭包是一个拥有许多变量和绑定了这些变量环境的表达式(通常就是一个函数),因而这些变量也是表达式的一部分;在JAVAscript中每个function都是一个闭包,嵌套的function产生的闭包更为强大

  闭包的作用

闭包使得函数执行完后变量不会被垃圾回机制给清空;2、保护函数内部变量的安全;3,通过变量的保护确定JS的私有属性和私有方法;

JS中的变量回收机制;

  在JS中当对象不被外部引用,JS的回收机制就会回收该对象,如果两个对象相互引用,而不被第3者引用,那么两个对象都会被回收机制给回收;当函数a被B引用,b又被a外面的C引用,那么a不会被垃圾回收机制个回收;

闭包的简单例举;

function aa(){

  var a=0

  function bb(){

    a++ 

  }

  return  bb

}

var c=new aa()

c();

原文地址:https://www.cnblogs.com/chenxilin/p/4422552.html