バックボーンプロジェクトをセットアップするための「パターン」のいくつかを理解しようとしています。以下の例では、'render' 関数で、作成者は 'this' のインスタンスを返します。
どうしてこれなの?例に固有のものですか、それともバックボーンに共通するものですか? 「render」関数で「this」を返す必要がある理由がわかりません。
例
http://backbonefu.com/2011/08/filtering-a-collection-in-backbone-js/
バックボーンプロジェクトをセットアップするための「パターン」のいくつかを理解しようとしています。以下の例では、'render' 関数で、作成者は 'this' のインスタンスを返します。
どうしてこれなの?例に固有のものですか、それともバックボーンに共通するものですか? 「render」関数で「this」を返す必要がある理由がわかりません。
例
http://backbonefu.com/2011/08/filtering-a-collection-in-backbone-js/
これは単なる一般的な方法であるため、呼び出し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 );
戻るという意味は、連鎖の可能性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();