怎麼更好的理解JS閉包,希望舉個例子 還有應用場景?

時間 2021-06-08 23:11:08

1樓:夏然

先更正乙個問題閉包不是js才有的

應該算是函式型語言的共有特性可以參考lua swift go函式沒有塊作用域概念作用域是通過作用域鏈確定的閉包就是做了乙個傳送門

這個傳送門分幾步

(四步):

函式外部不能訪問函式內部變數;

函式內部的函式可以訪問函式的變數;

函式內部的函式如果return函式外部的變數;

那呼叫函式內部函式時就等於訪問了函式內部的變數;

有啥用:

既然不想變數那麼多暴露出來那麼把變數搞到函式裡就好了。

如果又想暴露一部分那就想暴露哪個就用函式內部方法return哪個

2樓:maxxiao

給個閉包的應用場景

xhr.addEventListener("load",functionName, false);

如果functionName需要引數怎麼辦呢可以再定義乙個函式function

functionNameFnc(a

)}xhr.

addEventListener

("load"

,functionNameFnc(a

),false);

3樓:

可以去看看Underscorejs的原始碼,它的的函式部分都用到了閉包,覺得很經典。

其他部分也可以看看,也就1000多行,而且每個方法都非常短小精悍。

比如這個_.after:_.

after

=function

(times

,func)};};

js 原型鏈怎麼理解?

江南公子旭 function animal function dog animal.price 2000 dog.prototype animal 解 因為這裡這是將這個函式的prototype屬性賦值成了 animal 並不是他 new 出來的乙個物件 所以animal 不是他的建構函式 所以do...

怎麼理解JS原型鏈中Function原型物件的 proto 指向Object的原型物件?

冷月騎士 不僅如此,Function.constructor Function 也是成立的,加上你的問題,也就是下圖中紅線部分,都是成立的。非常直觀的說明了以下問題 1.JS中,一切皆物件 任何乙個值,不管是什麼型別,最後都能鏈路到 Object 2.函式是一等公民 畢竟Object 型別,也是通過...

請問怎麼更好的理解矩陣?

修遠 個人見解,乙個矩陣可以有兩種內涵 實體不變,基組變換,座標值跟著變。座標值不變,基組變換,實體跟著變。在以下式子 所表達的觀念下,矩陣形式上就是一堆有序座標值的集合。設實體列向量 在基向量組 分解,得 同理,列向量組形成的矩陣 在基向量組 下的分解為 這個矩陣此時就代表著由基組到基組 的變換,...