javascript性能提升——巧用局部变量

来源:互联网 发布:apache日志按天生成 编辑:程序博客网 时间:2024/06/05 17:43

——authored by 李家优 

javascript中一个标识符所在的位置越深,它的读写速度也越慢。因此,函数中读写局部变量总是最快的,而读写全局变量通常是最慢的。一个好的经验法则是:如果某个跨作用域的值在函数中被引用一次以上,那么就把它存储到局部变量里。

例如:

<!-- 优化前 --><script type="text/javascript">  function initUI () {    var bd = document.body,        links = document.getElementByTagName("a"),        i=0,        len=links.length;    while(i < len){      update(links[i++]);    }    document.getElementById("go-btn").onclick = function(){      start();    }    bd.className = "active";  }</script>
该函数引用了三次document,而document是个全局对象。搜索该变量的过程必须遍历整个作用域链接,直到最后在全局变量对象中找到。你可以通过以下方法减少对性能的影响:先将全局变量的引用存储在一个局部变量中,然后使用这个局部变量代替全局变量。

例如:

<!-- 优化后 --><script type="text/javascript">  function initUI () {    var doc=document,        bd = doc.body,        links = doc.getElementByTagName("a"),        i=0,        len=links.length;    while(i < len){      update(links[i++]);    }    doc.getElementById("go-btn").onclick = function(){      start();    }    bd.className = "active";  }</script>

一贱你就笑


0 0