我建立我的第一個面向對象的JS庫,並具有一塊這可能是超級簡單了一點小麻煩IM ...將我的var設置爲帶參數的匿名函數?
我有這樣的:
var storageLocker = function(catalog){
if(catalog){
this.catalog = catalog;
}
//my code...
}()
我需要能夠做什麼像jQuery這樣的其他庫可以在其中選擇一個元素(在我的情況下選擇一個localStorage項目),然後將其他函數鏈接到它。我所有的工作,但爲了達到最佳做法,並使其更具擴展後,我把它放在一個匿名函數,現在我無法弄清楚如何有語法:
storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"})
但現在如果我現在用這個語法來做,它返回這個錯誤:
Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function
任何想法?
我讀了你的其他問題,如果你想使用私有變量,你需要使用閉包。也就是說,你應該在最後使用這個結構_with_`()`,但是你需要從內部返回第二個函數,它處理你的實際邏輯。在另一個問題上有一個很好的例子。 – jwueller 2010-11-29 01:49:42