一个关于js的内存问题

 1 <script type="text/javascript">
 2     function textChange(id, fn) {
 3         var textarea = document.getElementById(id);
 4         if ("v" == "v") {
 5             textarea.onpropertychange = fn;
 6         }
 7         else {
 8             textarea.addEventListener("input", fn, false);
 9         }
10     }
11 
12     function SetTxt2() { 
13         document.getElementById("txt2").value = document.getElementById("txt1").value;
14     }
15 
16     function SetTxt1() {
17         document.getElementById("txt1").value = document.getElementById("txt2").value;
18     }
19     onload = function () {
20         textChange("txt1", SetTxt2);
21 
22         textChange("txt2", SetTxt1);
23     }
24 </script>
25 <input type="text" name="" value="" id="txt1" /><br />
26 <input type="text" name="" value="" id="txt2" />

这段代码火狐和谷歌Chrome中运行是没有问题的,但是在IE8中运行有问题

报错:

出错的原因是因为:火狐和谷歌Chrome对于内存垃圾的处理方式是标记删除,但是IE8部分使用了标记删除,IE8对于DOM的内存垃圾收集方式依旧使用的是引用计数,会出现死循环的问题。IE9修复了这一问题!

本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/tq1226112215/
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/tq1226112215/p/3637567.html