0

dataデータをdomからきちんと分離し、そのおよびuiオブジェクトのパブリックAPIを返すjavascriptモジュールがあります:

var PtCalcApp = (function() {
    var ptCalc = ptCalc || {};

    ptCalc.ui = {
        storage: $('#pt-storage'),
        backup: {
            daily: $('#per-day-data'),
            weekly: $('#per-week-data'),
            monthly: $('#per-month-data'),
            yearly: $('#per-year-data')
        },
        change: {
            yearly: $('#annual-change'),
            daily: $('#daily-change')
        }
    };

    ptCalc.data = {
        storage: function() {
            ptCalc.ui.storage.val()
        }
    }

    return ptCalc;
})();

今、このようなデータにアクセスしようとすると:

PtCalcApp.data.storage()

戻りますundefined。この自己呼び出し関数パターンで何が間違っていますか? これを修正するにはどうすればよいですか?

4

2 に答える 2

1

関数から何も返していません。returnステートメントがなければ、関数は戻りますundefined(で呼び出されない限りnew、しかしそれは別の問題です)。

storage: function() {
    ptCalc.ui.storage.val()
}

する必要があります

storage: function() {
    return ptCalc.ui.storage.val()
}
于 2013-06-19T10:28:31.593 に答える
0

PtCalcApp.ui.storage関数ではなく、プロパティです。

PtCalcApp.ui.storagenot asを使用してアクセスする必要がありますPtCalcApp.ui.storage()

aa 関数を使用する場合は、次のように宣言する必要があります。

storage: function(){
    return $('pt-storage');
}
于 2013-06-19T10:17:11.030 に答える