我有一个javascript模块,可以整齐地将数据与dom分开,并返回其data
和ui
个对象的公共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
。这个自调用函数模式我做错了什么?我该如何解决这个问题?
答案 0 :(得分:1)
您没有从该功能返回任何内容。如果没有return
语句,该函数将返回undefined
(除非使用new
调用,但这是另一回事)。
storage: function() {
ptCalc.ui.storage.val()
}
应该是
storage: function() {
return ptCalc.ui.storage.val()
}
答案 1 :(得分:0)
PtCalcApp.ui.storage
不是函数,它是属性。
您需要使用PtCalcApp.ui.storage
而不是PtCalcApp.ui.storage()
如果您想使用某个功能,则需要将其声明为
storage: function(){
return $('pt-storage');
}