一个说法是对Dom的循环操作会引起内存泄漏,一下是一个例子:
- JScript code
function init() { var el = document.getElementById('MyElement'); el.onclick = function () {……} } init();
下面是对此的解释:init在执行的时候,当前上下文我们叫做context。这个时候,context引用了el,el引用了function,function引用了context。这时候形成了一个循环引用。
el引用了function,这个function指的是el的click事件处理函数么?如果是的话,这个function的context不是应该是el么?对此还是有些不能理解,求各位指点一二,多谢各位了。
------解决方案--------------------
不能把...没发现什么泄漏啊...不懂...我这执行很正常...
- HTML code
<html> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> </HEAD> <body> <div> <input type="button" value="aaaa"> <br> <input type="button" value="bbbb" id="MyElement"> </div> <SCRIPT type="text/javascript"> function init() { var el = document.getElementById('MyElement'); el.onclick = function () {alert('haha');}; } init(); </SCRIPT> </body> </html>
------解决方案--------------------
- JScript code
function init() { var el = document.getElementById('MyElement'); var a=1; var tmp=function(){alert(a)}; el.onclick = tmp; } init();
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
我也没有发现什么内存泄露的问题