Javascript垃圾收集

时间:2013-02-28 15:39:14

标签: javascript backbone.js garbage-collection

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

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')               
});

1 个答案:

答案 0 :(得分: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')               
});

然后这将通过this.$el作为jQuery对象在整个对象中可用,并且视图不应该知道它的容器只是它所在的元素。所以如果你想要这个是主视图改变你的选择器为$('#content .main')$('#main')