返回信息流例如下面函数,在func函数执行完毕后,环境变量o和element被销毁,函数执行完毕后,在函数内o引用的JS原生对象不再被
环境变量引用,根据标记清除式垃圾回收策略,即使DOM对象的属性引用了此JS原生对象,但DOM对象中的属性不属于执行环境变量,
此JS原生对象应该被销毁才对,为什么还会出现JS原生对象和DOM对象的循环引用引起的内存泄露的问题....求真相帝....
<script type="text/javascript">
function func(){
var o = new Object();
var element = document.getElementById("myElement");
o.oPreference = element;
element.elPreference = o;
}
func();
</script>
这是一条镜像帖。来源:北邮人论坛 / www-technology / #15010同步于 2011/11/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
关于IE中原生对象和DOM对象循环引用的问题!!!
tastesimple
2011/11/15镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
dom对象没销毁,它的属性引用了o,所以o不会被销毁。。。
【 在 tastesimple (品味简单) 的大作中提到: 】
: [size=3]例如下面函数,在func函数执行完毕后,环境变量o和element被销毁,函数执行完毕后,在函数内o引用的JS原生对象不再被
: 环境变量引用,根据标记清除式垃圾回收策略,即使DOM对象的属性引用了此JS原生对象,但DOM对象中的属性不属于执行环境变量,
: 此JS原生对象应该被销毁才对,为什么还会出现JS原生对象和DOM对象的循环引用的问题....求真相帝....
: ...................
dom对象的属性不是执行环境中的变量吧,所以即使dom对象对原生对象存在引用,采用标记清除式垃圾回收策略也应该回收js原生对象呀
【 在 xw2423 的大作中提到: 】
: dom对象没销毁,它的属性引用了o,所以o不会被销毁。。。
: 【 在 tastesimple (品味简单) 的大作中提到: 】
: : [size=3]例如下面函数,在func函数执行完毕后,环境变量o和element被销毁,函数执行完毕后,在函数内o引用的JS原生对象不再被
: ...................