使用闭包函数的一个小例子

68 阅读1分钟

定义一个函数,这个函数的返回也是一个函数(内部函数)

内部函数用到了外部函数里面的变量,或者说,内部函数用到了外部函数里面的参数

定义内部函数要做什么(要返回什么)

把内部函数拿到外面来使用,用一个变量接收内部函数本身。

变量接收了内部函数本身,变量后面加个括号,意思就是执行内部函数。

<script>
  // 定义了一个全局变量,外部函数内部函数都可以用
  var temp = 37.2;
  //   定义一个外部函数
  function makeFun(checkLine) {
    // 外部函数的返回值是一个内部函数
    return function (temp) {
      // 内部函数用了外部函数的参数
      if (temp > checkLine) {
        alert("高于检测线");
      } else {
        alert("正常");
      }
    };
  }

  //   把内部函数拿到外面来执行,用一个变量接收它
  //   这个函数接收的,是 内部函数的函数体
  var checkA = makeFun(37.1);
  var checkB = makeFun(37.3);
  //   现在执行内部函数,变量接收的是函数体,那么变量加上小括号,就是执行这个函数
  checkA(temp);
  checkB(temp);
</script>