3

ここでは、クラスCalendarを含むcom.matogen.ghtというパッケージを作成しようとしました。カレンダーオブジェクトをインスタンス化するときに、init()メソッドが自動的に呼び出されるようにしたいと思います。以下の例は機能しますが、それでもinit()メソッドを明示的に呼び出す必要があります。

var com = {
    matogen : {
        ght : {
            'Calendar' : function() {       

                this.init = function() {
                    console.log("This is my constructor");
                }

            }
        }
    } 
}

$(document).ready(function() {
    var cal = new com.matogen.ght.Calendar();
    cal.init();

});
4

2 に答える 2

4

initそのように関数を変更するだけです

this.init = (function() {
    console.log("This is my constructor");
}());

自己実行の無名関数を使用するか、必要に応じて、関数自体を次のように呼び出します。

...
    Calendar : function() {       

        this.init = function() {
            console.log("This is my constructor");
        };
        this.init();
    }
...
于 2012-04-24T07:28:07.213 に答える
2

さて、あなたがやっているよう、あなたのコンストラクタです。 newcom.matogen.ght.Calendar()Calendar()

そう:

var com = {
    matogen : {
        ght : {
            Calendar : function() {       
                console.log("This is my constructor");
            }
        }
    } 
}

...正確でしょう。

于 2012-04-24T08:58:30.137 に答える