一个闭包函数的基础知识实例

47 阅读1分钟

本来函数内部的变量,函数外面是不能执行的,但是这里在函数内部又定义了一个函数,并且函数内部的函数用到了外部函数的变量 内部函数被移到外部来执行(用一个变量来接收这个内部函数本身)

<script>
    // 定义一个函数
  function fun() {
    // 定义一个变量
    var name = "JavaScript";
    // 函数里面又定义了一个函数
    function innerFun() {
        // 内部函数可以用外部函数定义的变量,内部函数用到了外部函数定义的变量
      alert(name);/* 执行内部函数会输出这个变量 */
    }
    // 在外部函数返回内部函数的函数本身,这里不是返回值
    return innerFun;
  }
//   用一个变量接收了外部函数的返回值,外部函数的返回值是内部函数本身
  var inn = fun();
//   执行了外部函数的返回值,也就是执行了内部函数
  inn();/* 所以最终结果,就是输出内部函数的输出结果 */


</script>