- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs
Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
31 lines
933 B
JavaScript
31 lines
933 B
JavaScript
import isFunction from './is-function';
|
||
/**
|
||
* _.memoize(calColor);
|
||
* _.memoize(calColor, (...args) => args[0]);
|
||
* @param f
|
||
* @param resolver
|
||
*/
|
||
export default (function (f, resolver) {
|
||
if (!isFunction(f)) {
|
||
throw new TypeError('Expected a function');
|
||
}
|
||
var memoized = function () {
|
||
var args = [];
|
||
for (var _i = 0; _i < arguments.length; _i++) {
|
||
args[_i] = arguments[_i];
|
||
}
|
||
// 使用方法构造 key,如果不存在 resolver,则直接取第一个参数作为 key
|
||
var key = resolver ? resolver.apply(this, args) : args[0];
|
||
var cache = memoized.cache;
|
||
if (cache.has(key)) {
|
||
return cache.get(key);
|
||
}
|
||
var result = f.apply(this, args);
|
||
// 缓存起来
|
||
cache.set(key, result);
|
||
return result;
|
||
};
|
||
memoized.cache = new Map();
|
||
return memoized;
|
||
});
|
||
//# sourceMappingURL=memoize.js.map
|