0

これらのオプションはどちらも、ビューの正しい動作をもたらします。この質問は、どのアプローチがより効率的であるか、または他の理由で望ましいかについてです。

これを達成する他の方法がある場合は、それらについても教えてください!

オプション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);

});
4

1 に答える 1

1

nr 2、間違いなく、これは 1 回だけ実行され、#1 はビューがインスタンス化されるたびに実行されるためです。

于 2013-09-30T09:23:25.380 に答える