これらのオプションはどちらも、ビューの正しい動作をもたらします。この質問は、どのアプローチがより効率的であるか、または他の理由で望ましいかについてです。
これを達成する他の方法がある場合は、それらについても教えてください!
オプション1
バックボーン ビューの初期化関数内で拡張します。
define([
'mixins/fooMixin',
'mixins/barMixin'
],
function(FooMixin, BarMixin) {
var FooBarView = BackboneLayout.extend({
initialize: function() {
_.extend(this, FooMixin);
_.extend(this, BarMixin);
/* do other things */
},
mySpecialMethod: function() {
this.foo();
this.bar();
}
});
return FooBarView;
});
オプション #2
バックボーン ビューを作成する前に、プレーンな古い JavaScript オブジェクトを拡張します。
define([
'mixins/fooMixin',
'mixins/barMixin'
],
function(FooMixin, BarMixin) {
var FooBarViewDefn = {};
_.extend(FooBarViewDefn, FooMixin, BarMixin, {
initialize: function() {
/* do other things */
},
mySpecialMethod: function() {
this.foo();
this.bar();
}
});
return BackboneLayout.extend(FooBarViewDefn);
});