天天看點

關于js閉包閉包概念

閉包概念

  • 閉包就是可以讀取其他函數内部變量的函數

變量的作用域

  • 要了解閉包,首先要知道js特殊的變量作用域。
  • 變量作用于有兩種:全局變量和局部變量
  • js中,函數内部可以直接讀取父級函數的變量
  • 舉例說明:

    var n = 99;

    function f1(){

    conosle.log(n)

    }

    f1() // => 99

  • js中,函數外部讀取不到函數外部的變量
  • 舉例說明

    function f1(){

    var n = 99

    }

    f1()

    console.log(n) // n is not defined

    如何從外部讀取到内部的變量

    • 有時候我們需要得到函數内部的變量,正常情況寫是擷取不到的,但是通過“閉包”,我們可以擷取到函數内部的變量
    • 舉例說明

      function f1(){

      var n = 99

      function f2(){

      console.log(n)

      }

      return f2

      }

      f1()() // 99

繼續閱讀