闭包

一、产生闭包的条件

  1. 函数内返回函数
function a() {
  var c = 100;
  function b() {
    c = 200;
  }
  return  b;
}
  1. 函数作为参数传入函数中
function b(fn) {
  var c = 100;
  fn(c);
}

注:正常情况变量在使用完后,会被垃圾回收机制进行释放,内部函数使用外部函数的变量,会延长该变量的生命周期,由于不知未来会不会再使用该变量,所以不会触发垃圾回收机制(不是内存泄漏)。

二、使用闭包的场景

  • 为多个dom元素添加点击事件


  
    为多个dom元素添加点击事件
  
  
    
    
    
    
    
    
  

你可能感兴趣的:(闭包)