0

我有一个 javascript 模块,可以将数据与 dom 巧妙地分开,并为其dataui对象返回一个公共 api:

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 回答