-1
A
回答
0
你可以有一個方法,你將傳遞一個函數,它將在內部維護一個緩存對象,其中計算值將被緩存。當你用相同的參數調用該函數時,緩存的值將被提供。
function cacheFn(fn) {
var cache={};
return function(arg){
if (cache[arg]){
return cache[arg];
}
else{
cache[arg] = fn(arg);
return cache[arg];
}
}
}
如果傳遞多個參數,首先我們必須使用參數得到傳遞給函數的所有參數,然後我們可以生成緩存對象的關鍵。爲緩存對象生成密鑰可能會非常棘手,一種解決方案可能只是獲取所有參數並將它們連接起來。看看下面的代碼。
return function(){
var args = arguments;
var key = [].slice.call(args).join('');
if(cache[key]){
return cache[key];
}
else{
cache[key] = fn.apply(thi, args);
return cache[key];
}
}
+0
當然,這個假設可以將參數強制轉換爲字符串。 –
相關問題
- 1. Javascript緩存選擇器功能
- 2. OpenERP緩存功能
- 3. 緩存結果的功能?
- 4. javascript中的簡單緩動功能
- 5. 陣列中的緩存功能
- 6. 緩存在FieldcacheImpl中的功能
- 7. Aiohttp-Asyncio緩存功能
- 8. 通過緩存元功能
- 9. 緩存功能結果f#
- 10. 寫緩存功能球拍
- 11. 在VB.NET中編寫緩存功能
- 12. 的Javascript:緩存功能屬性VS新的價值
- 13. SimplePie緩存功能(可能擴展它)
- 14. SQL服務器 - 緩存內的功能
- 15. 帶緩存的Oracle流水線功能
- 16. 如何使用KbmMW的緩存功能?
- 17. 功能中的Javascript內存管理
- 18. 緩慢的中間緩動功能
- 19. 如何使用JavaScript清除應用程序緩存(HTML5功能)?
- 20. Javascript性能:緩存vs無緩存 - 奇怪的結果
- 21. 在Magnolia的模板功能中是否存在緩存?
- 22. MySQL查詢緩存與自定義緩存功能
- 23. 如何在R包中重建後保留緩存的緩存功能
- 24. javascript中的簡單緩存
- 25. 的Javascript GeoLocation中緩存
- 26. 如何緩存功能布爾結果
- 27. EnterpriseLibrary緩存負載平衡功能
- 28. 緩存清理不進入功能
- 29. 功能NHibernate緩存與自動映射
- 30. Opera後退按鈕緩存功能
你是什麼意思_cache_? –
**請勿將您的文本以粗體顯示**請*確認*明確說明您要完成的目標:[*我如何提出一個好問題?*](/ help/how -to-ask) –
將函數的結果存儲在變量中,就像在任何語言中一樣?你想要做什麼,哪些不起作用? – David