5

我想知道以下伪jQuery代码中是否会发生内存泄漏(因为成功回调总是引用_this)?

var _this = this;

$.ajax({
  url: "foo",
  type: "POST",
  data: data,
  success: function() {
      // Do stuff with _this
      _this.doStuffs();
})
4

2 回答 2

1

此代码是否在函数中?

如果是(我猜),在 ajax 调用完成或失败后,_this 将无法被垃圾回收所识别。所以理论上没有理由担心这里的内存泄漏。

于 2012-11-05T22:04:14.223 回答
0

我看不到那里的内存泄漏。成功回调应该在被调用后被垃圾收集(必须正确实现,你做对了 - 但它由 jQuery 和浏览器正确完成的,甚至可能在 IE 中)。之后,也_this可以收集对象(如果没有从外部引用) - 但当然不是在此之前,这就是关闭的目的。

于 2012-11-05T22:04:03.667 回答