Javascript 如何确保正确关闭主干视图
我所有的观点都与我密切相关Javascript 如何确保正确关闭主干视图,javascript,backbone.js,memory-management,Javascript,Backbone.js,Memory Management,我所有的观点都与我密切相关 Backbone.View.prototype.close = function() { this.remove(); this.unbind(); if (this.closeMe) this.closeMe(); }; 在视图内部的closeMe()函数中,我调用主干的off()函数,以从模型和集合中删除以前绑定的回调函数 closeMe: function() { if(this.model) this.
Backbone.View.prototype.close = function()
{
this.remove();
this.unbind();
if (this.closeMe) this.closeMe();
};
在视图内部的closeMe()函数中,我调用主干的off()函数,以从模型和集合中删除以前绑定的回调函数
closeMe: function()
{
if(this.model)
this.model.off(null, null, this);
...
}
问题是,若在initialize函数中有一些变量附加到当前视图,那个么我需要通过closeMe()函数来处理它们吗
initialize : function(options)
{
...
this.myVar= options.something;
}
这个工作是为你做的
垃圾收集器算法将“不再需要对象”的定义减少为“对象没有其他对象引用它”。如果没有指向该对象的引用,则该对象被视为垃圾回收对象
当对视图的引用没有指向它的引用时,垃圾收集器将删除此对象。此时,如果对象myVar
没有指向它的引用,垃圾收集器将删除它
顺便说一下,我建议使用方法来侦听事件,而不是使用上的方法,因为这样可以简化代码。在主干视图上调用remove
时,从DOM中删除一个视图,并在该视图上调用stopListening
,以删除该视图已侦听的所有绑定事件