2013-02-28 160 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