小弟也是初学JS,请教一下各位大牛!
代码片段:
(function() {
var li = document.getElementById('nav').getElementsByTagName('li'),
i = 0;
for (; i < li.length; i++) {
li[i].index = i;
li[i].onmouseover = function() {
for (var j = 0; j < li.length; j++) {
li[j].getElementsByTagName('a')[0].className = '';
}
li[this.index].getElementsByTagName('a')[0].className = 'current';
}
}
}());
我就是想问下这里的 li 变量,当函数执行完成时,有没有得到内存的释放?
我个人认为觉得并没有得到释放,因为 onmouseouver 事件,闭包引用了 li 外面作用域的变量,所以垃圾回收器,标记一直是1,所以没有得到释放。
如果要想释放内存,以上代码应该怎样改呢?
尚方宝剑之说
慕工程0101907
相关分类