徹底搞懂閉包

2022-04-28 16:51:07 字數 568 閱讀 2447

---恢復內容開始---

1、閉包的定義

官方的解釋是:所謂「閉包」,指的是乙個擁有許多變數和繫結了這些變數的環境表示式(通常是乙個函式),因而這些變數也是這些表示式的一部分。相信很多人看完這個很難懂,其實在不懂之前我也看不懂。先看一段**:

function

a()

return

b; }

var c=a();

c();

這個函式有兩個特點:1、函式b巢狀在函式a內部;2、函式a返回函式b。

執行完var c=a()後,變數c實際上是指向函式b,再執行c()後就會彈出乙個視窗顯示i的值(第一次為1)。

當函式a的內部函式b被函式a外部的乙個變數引用的時候,就建立了乙個閉包。

2、閉包的作用

簡言之,就是a執行完並返回後,閉包使得js的垃圾**機制gc不會收回a所占用的資源,因為a的內部函式b的執行需要依賴a中的變數。這是最直白的描述。雖然很不專業。由於閉包的存在,使得函式a返回後,a中的i始終存在,這樣每次執行c(),i就會自動加1後彈出值。

---恢復內容結束---

徹底搞懂px em rem

px畫素 pixel 相對長度單位。畫素px是相對於顯示器螢幕解析度而言的。px特點 em是相對長度單位。相對於當前物件內文字的字型尺寸。如當前對行內文字的字型尺寸未被人為設定,則相對於瀏覽器的預設字型尺寸。em特點 注意 任意瀏覽器的預設字型高都是16px。所有未經調整的瀏覽器都符合 1em 16...

徹底搞懂parseInt

parseint 72.45 8 2 8 1 7 8 1 4 8 1 5 8 2 2 1 7 8 4 1 8 5 1 8 8 58.578125 parseint 231 3 3進製只能是0 2,所以查詢到3的時候,發現已經不是3進製的範疇了,則不再繼續查詢 把2當做3進製,最後轉為10進製 2 3...

徹底搞懂js proto

在開始之前,必須要知道的是 物件具有 proto constructor 函式也是物件固也具有以上 屬性,而函式獨有prototype 在看到一張圖分析到位很徹底,這裡共享 剛開始看這圖很懵,根本看不懂,但是細品,多品後恍然大悟,然後總結出以下幾點,很重要切記 1 切記 物件的內建屬性 proto ...