首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Backbone:查看删除/删除

Backbone:查看删除/删除
EN

Stack Overflow用户
提问于 2013-06-24 01:43:49
回答 1查看 87关注 0票数 0

我有一个关于视图删除/移除的问题。我知道您可以在视图对象上调用remove方法,这将删除DOM元素和任何通过listenTo绑定的事件侦听器。我的问题是,你是否需要做更多的事情。我通常在这些视图中绑定一些额外的变量,我想知道是否也需要将这些变量设为空。

示例视图:

代码语言:javascript
复制
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还不够,但我还需要将指向视图的变量设为空,这样做对吗?

代码语言:javascript
复制
myView.remove();
myView = null;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-24 01:56:24

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17263497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档