(重点)闭包的基本语法和实现

闭包的基本语法和实现

目标要求做到:语法各种情况都能够看出是否使用闭包

  1. 内部函数定义:当一个函数内部定义了另一个函数时,内部函数就成为了闭包。闭包可以访问外部函数的变量和参数,以及全局作用域中的变量。
    2. 外部函数执行:当外部函数执行时,内部函数会被创建并返回,但它仍然保持对外部函数作用域的引用。这意味着内部函数可以继续访问外部函数的变量和参数,即使外部函数执行完毕。
    3. 闭包(Closure)是指在函数内部创建的函数,它可以访问其外部函数作用域中的变量和参数,即使外部函数已经执行结束.
  <script>
    // 简单的写法
    // function outer() {
    //   let a = 10
    //   function fn() {
    //     console.log(a)
    //   }
    //   fn()
    // }
    // outer()


    // 常见的闭包的形式   外部可以访问使用 函数内部的变量
    // function outer() {
    //   let a = 100
    //   function fn() {
    //     console.log(a)
    //   }
    //   return fn
    // }


    // outer()   ===  fn   ===  function fn() {}
    // const fun = function fn() { }

    // // 常见的写法2
    // function outer() {
    //   let a = 100
    //   return function () {
    //     console.log(a)
    //   }
    // }
    // const fun = outer()
    // fun() // 调用函数


    // 外面要使用这个 10

    // 闭包的应用 
    // 普通形式 统计函数调用的次数
    // let i = 0
    // function fn() {
    //   i++
    //   console.log(`函数被调用了${i}次`)
    // }
    //  因为 i 是全局变量,容易被修改
    // 闭包形式 统计函数调用的次数
    function count() {
      let i = 0
      function fn() {
        i++
        console.log(`函数被调用了${i}`)
      }
      return fn
    }
    const fun = count()
  script>

你可能感兴趣的:(JavaScript,javascript,前端,vue.js)