1樓:西門吹牛
這個問題的最終解釋權,需要找這個語法的作者了。
哈哈,我覺得關注MDN中對其的定義及解釋,比樓主的問題更有價值
Closures
2樓:tearshark
第一,沒必要用別的名字。咱又不是搞地下工作的,沒必要整一些暗號一樣的詞彙來干擾試聽。
第二,closure和lambda表現上功能很接近。大部分叫closure的,是採用儲存環境塊來實現的,指令碼類語言用得比較多。大部分叫lambda的,是採用捕獲變數的方式來實現的。
第三,叫什麼還是語言發明者的自由,不用刻意在意名字是否如你所期。
3樓:Milo Yip
closure 原本是英文中動詞 close 的名詞,表示閉合、關閉。但中文很多動詞是沒有直接對應的名詞,而需要加入其他詞來表示名詞。
closure 這個計算機詞彙,是借用了數學上 closure 的中文翻譯「閉包」。加上了「包」可以表示它是乙個名詞形式。也許有其他更好的翻譯,例如「閉合作用域」、「閉域」等。
不過現時這個中文翻譯已太普遍了,嘗試用其他翻譯可能做成更多混淆。
有時候在各種專業領域裡,不要從字面猜它的意思,因為詞語是很難字面上表達它準確的定義。更重要是意會它的實際意義。
4樓:「已登出」
閉包這個詞是從數學抄過來的,雖然意思不一樣。
我覺得更好的問題是,為什麼https://en.wikipedia.
org/wiki/Closure_(computer_programming)要用https://en.wikipedia.
org/wiki/Closure_(mathematics)的名字。
5樓:二胡卯子
不一定完全回答了問題:
JS中迴圈和閉包如何理解?
鹽麵包 啟動了 1 5 的迴圈,每次都通過呼叫 setTimeout 建立乙個定時器。首次迴圈的 i 1,那麼延遲為 1 1000 1 秒。第二次及之後的延遲也就是 2,3 i 1000 秒。此時迴圈已經跑完,建立好了所有的定時器,i 最終值為 6。定時器觸發時,輸出了變數 i 也就是 6 了。 哦...
JS閉包的真正意義?
qianchaochushui 本質就在與讓乙個全域性變數,訪問函式內部就變數。一般的全域性變數 函式 是沒法訪問另乙個函式內部的變數的,閉包 函式內部返回的函式 可以。意義的話,就看你怎麼去使用了。 做個補充吧,我就不當搬運工了,直接看鏈結 英文 Closures MDN這篇閉包的文章比較淺顯實用...
python中的閉包和yield?
Jimmy Cheung 其實嘛,python裡有三種scope,分別是global scope,enclosing scope 和 local scope.第一和第三種就很好理解啦,關鍵在於第二種enclosing scope,closure用的就是這個。當乙個函式wrap另乙個函式 def fo...