给定一些这样的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/

10-12 13:56