Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保正确关闭主干视图_Javascript_Backbone.js_Memory Management - Fatal编程技术网

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
,以删除该视图已侦听的所有绑定事件