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