1

首先,我创建了一些主干视图:

(function() {

    var SomeView = Backbone.View.extend({ ... });

    // finally on ready
    $(function() {
        // init my view
        var v = new SomeView({...});
    });

})();

现在,正如我们所见,我正在 jQuery 就绪函数中实例化视图,并将实例分配给局部变量,一旦函数退出,该变量将丢失。但是,我注意到我的视图完美地工作——即,即使我失去了对视图的引用,它也能正常工作。

我想这是因为涉及到许多闭包,并且所有必需的变量实际上都保存在这些闭包中。

所以,我的问题是:这样实例化视图是否可以。不保存对它的引用是否可以。

4

2 回答 2

1

如果您不再需要对视图的引用,这完全没问题。您可以在实例化视图后渲染视图(甚至在其构造函数中进行),它会将生成的 HTML 插入 DOM(取决于您在视图上设置的选项)。当然,如果您稍后需要从视图之外的某些代码中调用某些视图方法,您将需要在某处保留对视图的引用。

于 2012-06-16T07:08:22.200 回答
0

你的理解是正确的,如果你不需要从外部调用这个视图,那么你当然不需要记录这个引用。不过你的例子太简单了,实际情况一般需要记录下这个参考。btw:有很多backbone的最佳实践,希望对你有用:http ://ricostacruz.com/backbone-patterns

于 2012-06-16T20:19:30.200 回答