0

我正在尝试在我的 javascript 中存储对将经常与之交互并使用以下代码的页面元素的引用:

var breadcrumbBar = null;
function getBreadcrumbBarElement() {
    if (breadcrumbBar === null) {
        breadcrumbBar = document.getElementById(breadcrumbBarElementId);
    }
    return breadcrumbBar;
}

但是,我想知道我是否可以比这更简洁或更惯用(从而更普遍地改进我的 javascript ......)?

4

2 回答 2

2

惯用的方法是使用逻辑or运算符:

var breadcrumbBar = null;
function getBreadcrumbBarElement() {
    return breadcrumbBar || (breadcrumbBar = document.getElementById(breadcrumbBarElementId));
}

或者,让它更通用一点:

var elementCache = {}

function getCached(id) {
    return elementCache[id] || (elementCache[id] = document.getElementById(id));
}
于 2013-09-06T09:07:04.320 回答
0

或者为了将缓存封装成函数:

function getCached(id) {
  if (!getCached.elementCache) getCached.elementCache = {}; 
  return getCached.elementCache[id] || (getCached.elementCache[id] = document.getElementById(id));
}
于 2014-09-09T16:15:06.207 回答