【问题标题】:Backbone render return this骨干渲染返回这个
【发布时间】:2012-06-30 14:22:03
【问题描述】:

我正在尝试找出一些“模式”来建立一个主干项目。在下面的例子中,在“render”函数中,作者返回了一个“this”的实例。

这是为什么?它是特定于示例的,还是 Backbone 常见的?我不明白为什么要在“渲染”函数中返回“this”。

示例

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

Calling a jQuery plugin in a Backbone render method

【问题讨论】:

    标签: javascript backbone.js


    【解决方案1】:

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

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

    那么你必须在实例化视图的代码中编写如下内容:

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

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

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

    【讨论】:

      【解决方案2】:

      返回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();
      

      【讨论】:

      • 非常感谢!我检查了 fguillen 的答案,因为它特定于 Backbone.js
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多