五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

千鋒教育JavaScript全套視頻教程(10天學會Js,前端javascrip

2023-07-21 09:16 作者:bili_18197036137  | 我要投稿

js閉包的理解

什么是閉包?

閉包(closure):是指函數與其周圍的狀態(tài)(lexical environment 詞法環(huán)境)的組合。通俗的理解是一個內部函數引用了外部函數的變量,此時外部函數就形成了一個閉包。下面就是一個簡單閉包的寫法。

function box() {

????????var a = 1

????????return function () {

??????????console.log(a);

??????????return a

????????}

??????}

??????let resFn = box()

??????resFn()

?閉包的寫法

?根據上面的簡單案列,我們對閉包已經有了初步的認識。閉包的寫法必須具有以下兩點。

1.函數嵌套體。

2.內部函數可以訪問外部函數的變量

閉包的原理

1.垃圾回收機制

??垃圾回收機制就是瀏覽器內存回收機制的一種算法。垃圾回收機制就是不停歇地查找那些不在使用的局部變量,并釋放掉它所指向的內存。最早使用的垃圾回收機制的算法是 ——引用計數器算法,因為這種算法存在缺點,容易造成內存泄漏。目前已經基本不使用了。目前使用的垃圾回收機制是——標記清除法:它標記能被全局所使用的變量。被標記的變量不會被清除。

作用域鏈

?內部函數使用變量的時候會先在自身去查找,自身沒有的話就去父級作用域去查找。

閉包的特點

1.閉包的優(yōu)點

(1)局部變量常駐內存,像全局變量一樣常駐內存,不會污染全局命名空間。

(2)產生私有變量(內部函數調用外部函數的變量,此時這個變量就會變成內部函數的私有變 量)

2.閉包的缺點

(1)使用不當的話容易造成內存泄露(解決辦法就是我們在不使用的時候手動賦值為null)。

(2)內存占用比較大,浪費內存。

經典閉包

?function fn() {

??????????let a = 1

??????????return function () {

????????????a++

????????????return a

??????????}

????????}

????????let newFn = fn()

????????console.log(newFn());

????????console.log(newFn());

????????console.log(newFn());

千鋒教育JavaScript全套視頻教程(10天學會Js,前端javascrip的評論 (共 條)

分享到微博請遵守國家法律
铁岭市| 五原县| 湘乡市| 柘荣县| 湖州市| 敖汉旗| 云浮市| 屯留县| 旬邑县| 资阳市| 分宜县| 五河县| 南澳县| 藁城市| 东明县| 定陶县| 民权县| 江孜县| 法库县| 宝丰县| 新建县| 通州区| 娱乐| 金山区| 西昌市| 乐陵市| 安吉县| 澄江县| 安丘市| 余干县| 雅江县| 广德县| 平阳县| 本溪市| 普宁市| 固安县| 天等县| 巨野县| 托克逊县| 那坡县| 秀山|