我一直在嘗試學習閉包(使用Javascript),這種方式在C#和C++多年以後會傷害我的大腦。我認爲我現在有一個基本的理解,但有一件事困擾我:我已經在這個探索尋求知識中訪問過很多網站,而且我看不到任何一個單詞(或者甚至是一個簡單的雙詞短語),意思是「一套的共享執行上下文的Javascript關閉「。例如:你怎麼稱呼一組共享上下文的Javascript關閉?
function CreateThingy (name, initialValue) { var myName = name; var myValue = initialValue; var retObj = new Object; retObj.getName = function() { return myName; } retObj.getValue = function() { return myValue; } retObj.setValue = function(newValue) { myValue = newValue; } return retObj; };
從我讀到的,這似乎是實現數據隱藏的一種常見方式。 CreateThingy返回的值當然是一個對象,但是你會怎麼稱呼該對象屬性的函數集呢?每一個都是封閉的,但我想用一個名稱來描述(並思考)所有這些名稱作爲一個概念實體,我寧願使用一個普遍接受的名稱而不是一個名稱。
謝謝!
- 埃德