摘要:在中閉包已經成了一個很神秘,讓人高山仰止的存在。今天又對閉包進行了一番搜索,有了一種明悟閉包就相當于黑盒的鑰匙。當你手握閉包,黑盒就能為你所用。通過訪問外部變量,一個閉包可以維持這些變量。閉包經常用于創建含有隱藏數據的函數但并不總是這樣。
在javascript中閉包已經成了一個很神秘,讓人高山仰止的存在。
今天又對閉包進行了一番搜索,有了一種明悟:閉包就相當于黑盒的鑰匙。當你手握閉包,黑盒就能為你所用。
為什么這么說呢?這個想法來自于這篇文章:
function foo(x) { var tmp = 3; return function (y) { alert(x + y + tmp); x.memb = x.memb ? x.memb + 1 : 1; alert(x.memb); } } var age = new Number(2); var bar = foo(age); // bar 現在是一個引用了age的閉包 bar(10);
如果一個函數訪問了它的外部變量,那么它就是一個閉包。
注意,外部函數不是必需的。通過訪問外部變量,一個閉包可以維持(keep alive)這些變量。在內部函數和外部函數的例子中,外部函數可以創建局部變量,并且最終退出;但是,如果任何一個或多個內部函數在它退出后卻沒有退出,那么內部函數就維持了外部函數的局部數據。閉包經常用于創建含有隱藏數據的函數(但并不總是這樣)。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79926.html
摘要:第一版設計需求單用戶之間通信融合了用戶反饋需求數據庫設計內容和收發者存在一張表中表這里一條存兩次,類似郵件服務。參考群發站內信的實現群發站內信的實現續兩年后,再議站內信的實現百萬級用戶量的站內信群發數據庫設計 第一版設計 需求 :單用戶之間通信(融合了用戶反饋需求) 數據庫設計:Message內容和收發者存在一張表中 message表: 這里一條Message存兩次,類似郵件服務。...
摘要:第一版設計需求單用戶之間通信融合了用戶反饋需求數據庫設計內容和收發者存在一張表中表這里一條存兩次,類似郵件服務。參考群發站內信的實現群發站內信的實現續兩年后,再議站內信的實現百萬級用戶量的站內信群發數據庫設計 第一版設計 需求 :單用戶之間通信(融合了用戶反饋需求) 數據庫設計:Message內容和收發者存在一張表中 message表: 這里一條Message存兩次,類似郵件服務。...
閱讀 3660·2021-09-07 09:59
閱讀 720·2019-08-29 15:12
閱讀 803·2019-08-29 11:14
閱讀 1307·2019-08-26 13:27
閱讀 2659·2019-08-26 10:38
閱讀 3133·2019-08-23 18:07
閱讀 1271·2019-08-23 14:40
閱讀 1922·2019-08-23 12:38