24

バックボーンプロジェクトをセットアップするための「パターン」のいくつかを理解しようとしています。以下の例では、'render' 関数で、作成者は 'this' のインスタンスを返します。

どうしてこれなの?例に固有のものですか、それともバックボーンに共通するものですか? 「render」関数で「this」を返す必要がある理由がわかりません。

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

Backbone render メソッドで jQuery プラグインを呼び出す

4

2 に答える 2

30

これは単なる一般的な方法であるため、呼び出しrender()て別のメソッド呼び出しを連鎖させることができます。

ビューがその HTML コンテンツをページに挿入しないのは一般的なパターンであり、このジョブは最初にビューをインスタンス化するインスタンスによって実行されます。

次に、ビューをインスタンス化するコードに記述する必要があるのは、次のようなものです。

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

ただしrender()、ビュー自体を返す場合は、上記のコードを次のように記述できます。

var myView = new MyView({ model: myModel });
$(myDOMElement).html( myView.render().el );
于 2012-06-30T14:37:38.717 に答える
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();
于 2012-06-30T14:39:10.230 に答える