Backbone:查看删除/删除

时间:2013-06-23 17:43:49

标签: javascript backbone.js

我有一个关于查看删除/删除的问题。我知道你可以在视图对象上调用remove方法,它将删除DOM元素,以及通过listenTo绑定的任何事件侦听器。我的问题是,如果你需要做更多的事情。我通常在这些视图中绑定一些额外的变量,我想知道我是否需要使这些变量无效。

示例视图:

var myView = Backbone.View.extend({
    el: '#exampleContainer',
    events: {
        'click': 'onClick'
    },
    initialize: function() {
        this.exampleString = 'Hello World';
        this.$exampleSelector = this.$('#exampleChild');
    },
    onClick: function(event) {
        console.log('Hello World');
    }
});

另外,我是否正确地认为调用remove是不够的,但是我还需要使指向视图的变量无效?

myView.remove();
myView = null;

1 个答案:

答案 0 :(得分:1)

AFAIK您应该将变量设置为null,因为JavaScript的垃圾收集器只会丢弃不再引用的对象(或者没有准确路由到根对象的对象)。在对象上调用.remove()不会破坏引用,因此它可能会留在内存中。

This post on HTML5Rocks解释了“对象图”是什么以及JavaScript的垃圾收集如何工作。 (我认为GC工作流程因引擎而异,但基本上它是如何工作的)