给定一些这样的JS代码:
for (var i = 0; i < document.getElementsByName('scale_select').length; i++) {
document.getElementsByName('scale_select')[i].onclick = vSetScale;
}
如果将getElementsByName的结果放入循环之前的变量,然后在循环之后使用该变量,代码会更快吗?
我不确定现实生活中会产生多大的影响,
getElementsByName
的结果通常少于10个。无论如何,我还是想了解底层的机制。另外,如果关于这两个选项还有其他值得注意的地方,请告诉我。
最佳答案
确实。存储所需的内存仅是指向DOM对象的指针,因此大大减轻了的痛苦,而每次需要使用某些东西时,它们的痛苦就小于进行DOM搜索!
理想代码:
var scale_select = document.getElementsByName('scale_select');
for (var i = 0; i < scale_select.length; i++)
scale_select[i].onclick = vSetScale;
关于javascript - JS函数调用的价格(与为变量分配内存相比)有多昂贵?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/114872/