0

私自身のプロジェクトの1つで、ダートシンプルなMVCフレームワークの作成に取り組んでいます。私のニーズは非常に珍しいので、公開されているものを使用するのではなく、作成することにしました。

コントローラとビューの構造を取得しましたが、モデル構造の作成で問題が発生しています。

これは私のモデル構造のために私が持っているものです:

model.models = function(args){

    init: function(){

        this.on_init();
    },

    on_init: args.on_init || noop,
    data: args.data || {},

};

それで、これを私が作成したいすべてのモデルの基本式と呼びます。たとえば、これを基本的な青写真として使用して、従業員、通知、およびその他のモデルを作成し、いくつかの基本的な調整を行います。

電話する:

model.employees = new model.models({

    on_init: function(){
        //something specific
    },

    data: {
        //defaults
    }

});

そして、私たちはこの時点まではすべて順調ですが、ここで私は問題を抱えています。さて、最終結果であるモデルを作成したい場合、オブジェクトから新しいオブジェクトを作成することはできません。それは関数である必要があります。

私が考えることができる唯一のことは、2番目のメソッドの戻り関数を作成することですが、それ自体にいくつかの問題が発生します。私は他のMVCコードを調べて調査を行いましたが、頭を包むことができませんでした。

どんな助けでも大歓迎です!

4

2 に答える 2

0

これは、あなたの望むことですか ?

model.models = function(args){
    var noop = function(){};

    var o = {};
    var init = args.on_init || noop;
    var data = args.data || {};

    init();
    //handle other initialization
    //o.a = xx;
    //o.b = xx;
    //o.c = data.xxx;
    //....

    return o;
}

その後、新しいものを使用できますが、構文エラーは表示されません

于 2012-11-30T18:01:34.653 に答える
0

多くのいじりをしました、これを思いつきました:

var blueprint = function(args){

return {

    data: args.data,
    on_init: args.on_init,
    create: function(args){

        this.on_init();

        return {

            data: this.data,

            whatever: function(){
                console.log(args);
            }
        };
    }

};

};

var notifs = new blueprint({

on_init: function(){
    console.log('init');
},

data: {
    test: 'test'
}

});

var res = notifs.create('test');

console.log(blueprint);
console.log(notifs);
console.log(res);

動作するメイン関数が付属しています。notifs関数は個々のオブジェクトタイプごとにカスタマイズ可能であり、createメソッドを呼び出すとendメソッドが作成されます。

ブーム!

于 2012-11-30T19:03:17.563 に答える