闭包

1、闭包可以访问当前函数以外的变量

  function a() {
    var date = '1';
    function b(str) {
      console.log(str + date);  //访问外部的date
    }
    return b('数字是');     //外部函数返回
  }
  a();

2、即使外部函数已经返回,闭包仍能访问外部函数定义的变量

  function a() {
    var date = '1';
    function b(str) {
      console.log(str + date);  //访问外部的date
    }
    return b;     //外部函数返回
  }
  var num = a();
  num('数字是'); // 数字是1

3、闭包可以更新外部变量的值

  function a() {
    var count = 1;
    function b(x) {
      count = x;
      console.log(count);  //访问外部的date
    }
    return b;     //外部函数返回
  }
  var y = a();
  y(666)
原文地址:https://www.cnblogs.com/wang715100018066/p/10417109.html