日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js 闭包的用法详解

發布時間:2025/7/25 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js 闭包的用法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、閉包

實現可重用的局部變量,且保護其不受污染的機制。

  • 外層函數包裹受保護的變量和內層函數。
  • 內層函數專門負責操作外層函數的局部變量。
  • 將內層函數返回到外層函數外部,反復調用。
  • 二、作用域

    子函數會一級一級地向上尋找所有父函數的變量。所以,父函數的所有變量,對子函數都是可見的,反之則不成立。

    三、函數調用

  • 外層函數調用了幾次,就有幾個受保護的局部變量副本。
  • 同一次外層函數調用返回的多個內層函數,共同用一個局部變量。
  • 閉包的局部變量不能釋放。
  • 盡量不要在定時器中使用閉包。因為閉包的外層函數定義的變量不能釋放,但是定時器使用中需要釋放。
  • 四、內層函數使用不同變量的實例詳解

    1、內層函數使用自己的變量

    內層函數使用自己的變量,調用完后,直接釋放。

    function outerFun(){function innerFun(){var innerVar = 0;innerVar++;alert(innerVar);}return innerFun; } var globVar1 = outerFun(); globVar1(); // Alert 1 globVar1(); // Alert 1 var innerVar2 = outerFun(); innerVar2(); // Alert 1 innerVar2(); // Alert 1

    2、內層函數使用全局變量

    全局變量釋放,是在所有代碼運行完成后。

    var globVar = 0; function outerFun(){function innerFun(){globVar++;alert(globVar);}return innerFun; } var globVar1 = outerFun(); globVar1();? // Alert 1 globVar1();? // Alert 2 var globVar2 = outerFun(); globVar2();? // Alert 3 globVar2();? // Alert 4

    3、內層函數使用外層函數變量(閉包)

    • 外層函數調用幾次就有幾個被保護的局部變量副本。
    • 閉包的局部變量不被釋放。
    function outerFun(){var outerVar = 0;function innerFun(){outerVar++;alert(outerVar);}return innerFun; } var globVar = outerFun(); globVar();? // Alert 1 globVar();? // Alert 2 var globVar2 = outerFun(); globVar2();? // Alert 1 globVar2();? // Alert 2

    ?

    轉載于:https://www.cnblogs.com/minigrasshopper/p/8056441.html

    總結

    以上是生活随笔為你收集整理的js 闭包的用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。