Backbone渲染返回此

时间:2012-06-30 14:22:04

标签: javascript backbone.js

我正在试图找出一些设置Backbone项目的“模式”。在下面的示例中,在'render'函数中,作者返回'this'的实例。

这是为什么?它是针对示例的,还是Backbone的常见内容?我不明白为什么人们应该在'render'-function中返回'this'。

示例

http://backbonefu.com/2011/08/filtering-a-collection-in-backbone-js/

Calling a jQuery plugin in a Backbone render method

2 个答案:

答案 0 :(得分:28)

这只是一种常见做法,因此您可以调用render()并链接另一个方法调用。

Views 不会在页面中插入HTML内容是一种常见模式,此作业由实例化 View 的实例完成。第一名。

然后你要在实例化View的代码中编写的内容是这样的:

var myView = new MyView({ model: myModel });
myView.render();
$(myDOMElement).html( myView.el );

但是如果render()返回View本身,你可以像这样编写上面的代码:

var myView = new MyView({ model: myModel });
$(myDOMElement).html( myView.render().el );

答案 1 :(得分:8)

返回this的含义是提供 链式可能性

例如,假设:

 var obj = {
      prop1 : 0,
      method1 : function(){
      },
      method2 : function(){
      }
 };
 //Then you could do something like:
 obj.method1();
 obj.method2();
 obj.prop1 = 1;

obj上的所有操作都需要单独执行。

现在考虑:

 var obj = {
      prop1 : 0,
      method1 : function(){
          return this;
      },
      method2 : function(){
          return this;
      }
 };
 //Now you could do these
 obj.method1().prop1 = 1;
 obj.method1().method2().method1();