Backbone渲染返回此

nde*_*ker 24 javascript backbone.js

我正在试图弄清楚一些'模式'来建立一个Backbone项目.在下面的示例中,在'render'函数中,作者返回'this'的实例.

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

例子

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

在Backbone渲染方法中调用jQuery插件

fgu*_*len 30

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

视图不会在页面中插入HTML内容是一种常见模式,此作业由首先实例化View的实例完成.

那么你必须在实例化View的代码中编写的内容是这样的:

var myView = new MyView({ model: myModel });
myView.render();
$(myDOMElement).html( myView.el );
Run Code Online (Sandbox Code Playgroud)

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

var myView = new MyView({ model: myModel });
$(myDOMElement).html( myView.render().el );
Run Code Online (Sandbox Code Playgroud)


Eng*_*eer 8

返回的意义this是提供链接的可能性.

例如,让我们假设:

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

您的所有操作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();
Run Code Online (Sandbox Code Playgroud)