我将一个jQuery插件/小部件作为OOP对象,在该对象中,我将HTML / jQuery元素($elem
)保存为属性。我还在HTML元素的new
属性中存储该对象的引用(使用data
创建)。这会导致循环引用/内存泄漏吗?
CoffeeScript中的代码大致为:
class wid
constructor
@$elem = $('<div>hello</div>')
@$elem.appendTo('body')
@$elem.data('obj',@) // adding the instance to the element's data attribute
updateText: (p)->
@$ele.text(p)
widget = new wid()
答案 0 :(得分:-3)
在真实的浏览器上,没有。 Internet Explorer是Microsoft的浏览器形状对象,它为DOM和Javascript提供了单独的垃圾收集器,因此很容易创建循环引用。由于IE与操作系统紧密集成,因此仅关闭浏览器不会释放此内存:必须重新启动操作系统。
然而,这是一件好事:随着IE变得越来越慢,使用不一致的对象引用而压低,用户将学习关于Microsoft质量的重要课程。