Memoização com seletores DOM em JavaScript

function getEls(sel) {
if (!getEls.cache) getEls.cache = {};
if (getEls.cache[sel]) {
console
.log('from cache');
return getEls.cache[sel];
}
var r = document.querySelectorAll(sel || '☺'),
length
= r.length;
return getEls.cache[sel] = (length == 1) ? r[0] : r;
}

var imgs = getEls('img');
var moreImgs = getEls('img');
var ps = getEls('p');
var morePs = getEls('p');