javascript - 我的 javascript 内存可以更简洁吗?

标签 javascript memoization idioms

我试图在我的 javascript 中存储对将频繁交互的页面元素的引用并使用以下代码:

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

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

最佳答案

惯用的方法是使用逻辑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));
}

关于javascript - 我的 javascript 内存可以更简洁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18653662/

相关文章:

javascript - 在输入字段中输入 id 显示所有信息

javascript - 使用内容脚本/消息与 Chrome 应用程序(不是扩展程序)发送数据

javascript - IOS虚拟键盘遮挡页面底部文本框

clojure - 用 Clojure 编写帕斯卡三角形的更惯用和简洁的方法是什么?

ruby - 方法中临时变量的惯用 ruby

javascript - 如何在reactjs中的if语句中检查多个状态?

c++ - C++ 中的内存仿函数包装器

python - 记住Python中的静态属性

python - Python 的 shelve.open 可以嵌套调用吗?

error-handling - Rust:从标准输入读取和映射行并处理不同的错误类型