我正在尝试将我的javascript中的引用存储到将经常与之交互并使用此代码的页面元素:
var breadcrumbBar = null;
function getBreadcrumbBarElement() {
if (breadcrumbBar === null) {
breadcrumbBar = document.getElementById(breadcrumbBarElementId);
}
return breadcrumbBar;
}
然而,我想知道我是否可以比这更简洁或惯用(因此更能改善我的javascript ...)?
答案 0 :(得分: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));
}
答案 1 :(得分:0)
或者为了将缓存封装到函数中:
function getCached(id) {
if (!getCached.elementCache) getCached.elementCache = {};
return getCached.elementCache[id] || (getCached.elementCache[id] = document.getElementById(id));
}