我正在浏览John Resig 关于高级 JavaScript 的片段。在#19中,他提到了一种缓存函数返回值的方法。缓存具有多个参数的函数的返回值的最佳方法是什么?
必须有一种比对接收到的参数进行字符串化并将其用作缓存对象的键更好的方法:
function $$(selector, el) {
var cacheKey = JSON.stringify(arguments);
if ($$.cache[cacheKey]) return $$.cache[cacheKey];
return ($$.cache[cacheKey] = NodeListToArray( (el || document).querySelectorAll(s) ));
}
$$.cache = {};