js 闭包的用法详解
生活随笔
收集整理的這篇文章主要介紹了
js 闭包的用法详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、閉包
實(shí)現(xiàn)可重用的局部變量,且保護(hù)其不受污染的機(jī)制。
二、作用域
子函數(shù)會(huì)一級一級地向上尋找所有父函數(shù)的變量。所以,父函數(shù)的所有變量,對子函數(shù)都是可見的,反之則不成立。
三、函數(shù)調(diào)用
四、內(nèi)層函數(shù)使用不同變量的實(shí)例詳解
1、內(nèi)層函數(shù)使用自己的變量
內(nèi)層函數(shù)使用自己的變量,調(diào)用完后,直接釋放。
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 12、內(nèi)層函數(shù)使用全局變量
全局變量釋放,是在所有代碼運(yùn)行完成后。
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 43、內(nèi)層函數(shù)使用外層函數(shù)變量(閉包)
- 外層函數(shù)調(diào)用幾次就有幾個(gè)被保護(hù)的局部變量副本。
- 閉包的局部變量不被釋放。
?
轉(zhuǎn)載于:https://www.cnblogs.com/minigrasshopper/p/8056441.html
總結(jié)
以上是生活随笔為你收集整理的js 闭包的用法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 异步编程 In .NET(转载)
- 下一篇: 解决前端页面闪烁问题(转载)