0

我读了很多次以避免全局变量,而且局部变量更快。但是,如果我有分配的元素,我通过 id 选择并需要它们分配函数?每次执行该函数时,都会再次搜索 DOM 以查找元素……将元素缓存在全局范围内不是更快吗?

4

2 回答 2

1

确实如此,但在这种情况下,您只需找到元素一次,然后将集合作为参数传递给所有需要它的函数。

这样大家都很开心:DOM 只搜索了一次,仍然没有全局变量。

于 2013-05-01T08:49:01.770 回答
0

或者,您可以使用单个全局函数进行查找,其中包括一个缓存,因此不必重复读取 dom。例子:

function lookupElementById(id) {
    if(lookupElementById.elementCache[id] !== undefined) lookupElementById.elementCache[id] = document.getElementById(id);
    return lookupElementById.elementCache[id];
}
lookupElementById.elementCache = {}
于 2013-05-01T08:53:18.370 回答