全局与局部变量如果经常需要分配元素

时间:2013-05-01 08:46:32

标签: javascript global-variables

我读了很多次以避免全局变量,并且局部变量也更快。 但是,如果我有我分配的所有元素,并且在分配函数中需要它们吗? 每次执行该函数时,都会再次搜索DOM以查找元素... 将元素缓存为全局不是更快吗?

2 个答案:

答案 0 :(得分:1)

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

这样每个人都很高兴:DOM只搜索过一次,但仍然没有全局变量。

答案 1 :(得分:0)

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

function lookupElementById(id) {
    if(lookupElementById.elementCache[id] !== undefined) lookupElementById.elementCache[id] = document.getElementById(id);
    return lookupElementById.elementCache[id];
}
lookupElementById.elementCache = {}