2013-02-28 120 views
-1

我有扩展Backbone.View类的基类。 我通过构造函数传递一个Jquery DOM元素,这个对象是垃圾收集的候选人吗?Javascript垃圾回收

var MainView = BaseView.extend({ 
    initialize: function(o) {  
    this.container = o.myJqueryDomElement; 
    this.render(); 
    }, 
    render: function() { 
    this.container.append(this.$el); 
    }, 
    dispose: function() { 
    this.remove(); 
    } 
}); 
在我的代码中的一些点

我这样做:

var mainView = new MainView({ 
    myJqueryDomElement = $('#content')    
}); 
+5

而......你的问题是什么? – 2013-02-28 15:40:18

+0

是的,我也有... – 2013-02-28 15:40:34

+1

而且?什么是问题或什么不工作?多一点努力来显示你的问题将是非常感谢! – Abbas 2013-02-28 15:40:39

回答

0

首先你应该通过jQuery的元素为el,所以

var MainView = BaseView.extend({ 
    initialize: function(o) {  
     this.render(); 
    }, 
    render: function() { 
     this.html(someTemplate) 
    }, 
    dispose: function() { 
     this.remove(); 
    } 
}); 

var mainView = new MainView({ 
    el: $('#content')    
}); 

那么这将是可用整个对象作为一个jQuery对象通过this.$el和视图不应该知道它的容器只是它所在的元素。所以如果你想这是主视图改变你的se lector是$('#content .main')或只是$('#main')

+0

我明白你关于容器的观点,但我的问题是关于垃圾收集。而不是jQuery元素,我会传递一个对象。 – 2013-02-28 22:04:57