1

我制作了一个 jQuery 插件/小部件作为 OOP 对象,并在该对象中将 HTML/jQuery 元素 ( $elem) 保存为属性。我还将该对象的引用(使用创建new)存储在dataHTML 元素的属性中。这会导致循环引用/内存泄漏吗?

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()
4

1 回答 1

-3

在真正的浏览器上,没有。Internet Explorer 是微软的浏览器形状的对象,它为 DOM 和 Javascript 提供了单独的垃圾收集器,因此很容易创建循环引用。由于 IE 与操作系统紧密集成,因此仅关闭浏览器并不能释放这些内存:必须重新启动操作系统。

然而,这是一件好事:随着 IE 变得越来越慢,被未释放的对象引用压得喘不过气来,用户学到了有关 Microsoft 质量的重要一课。

于 2013-08-07T20:07:30.497 回答