Javascript OOP アプローチを使用してビューとサブビューを処理する最善の方法を考えています。基本的なタスクは次のとおりです。水平方向のスワイプ可能なペインのリストを作成したいと考えています。スワイプ要素自体がビューになり、その中に多くのサブビュー (ペインごとに 1 つ) があります。私の現在のアプローチは次のようになります。
function Swipe(el){
this.el = el;
var els = el.querySelectorAll('li');
this.subviews = els.map(function(li){
return new Pane(li);
}, this);
}
Swipe.prototype.goto = function(num){
// alter this.el to show the current pane, based
// on index.
}
function Pane(el){
this.el = el;
}
Pane.prototype.bind = function(){
// bind click events
}
この設計パターンは私にとってはうまく機能しますが、サブビューから親ビューにアクセスする最良の方法は何ですか? this
次のように、サブビューを構築するときに合格するところまで行きました。
this.subviews = els.map(function(li){
return new Pane(li, this);
}, this);
function Pane(el, parent){
this.el = el;
this.parent = parent;
}
これにより、親ビューから関数を呼び出すことができます。たとえば、goto
クリックされたサブビュー ボタンに応答して関数を使用できます。しかし、これは本当に最適ではないと思います。
だから私の質問:ビューとサブビューを処理する最良の方法は何ですか?具体的には、親ビューから関数を呼び出すサブビューの機能は何ですか?