我想知道在以下伪jQuery代码中是否会发生内存泄漏(因为成功回调总是引用_this)?
var _this = this;
$.ajax({
url: "foo",
type: "POST",
data: data,
success: function() {
// Do stuff with _this
_this.doStuffs();
})
答案 0 :(得分:1)
这个代码是否在函数中?
如果是(我猜),那么在ajax调用完成或失败后,这将无法识别垃圾收集。因此理论上没有理由担心内存泄漏。
答案 1 :(得分:0)
我看不到内存泄漏。成功回调应该在被调用后进行垃圾收集(必须正确实现,你已经做到了 - 但 通过jQuery和浏览器正确完成,甚至可能在IE中完成)。之后,也可以收集_this
对象(如果没有从外部引用) - 但当然不是在此之前,这就是关闭的目的。