我想要JavaScript中的子对象
我想将我的JavaScript对象组织成类似“子模块”的形式,我写了以下内容:我想要JavaScript中的子对象,javascript,oop,design-patterns,javascript-objects,Javascript,Oop,Design Patterns,Javascript Objects,我想将我的JavaScript对象组织成类似“子模块”的形式,我写了以下内容: 'use strict'; var APS = (function () { var dashboard = (function () { var onReady = function () { alert(2); }; return { onReady: onReady } });
'use strict';
var APS = (function () {
var dashboard = (function () {
var onReady = function () {
alert(2);
};
return {
onReady: onReady
}
});
var onReady = function () {
alert(1);
dashboard.onReady(); // does not work
};
return {
onReady: onReady,
}
})();
$(document).ready(APS.onReady);
警报(1)
有效,仪表板.onReady()
无效,我收到此错误消息:
未捕获类型错误:dashboard.onReady不是函数
我想在APS下面的不同“子包”中组织我的代码,使其具有某种层次结构。如何实现这一点?
dashboard
本身就是一个函数,它还没有返回包含onReady
的对象
通过添加另一个()
,完成IIFE:
或者改用
dashboard().onReady
。dashboard
本身是一个函数,尚未返回包含onReady
的对象
通过添加另一个()
,完成IIFE:
或者改用
dashboard().onReady
。您使用了匿名函数,但不允许它立即运行以返回值。有两种解决方案
dashboard().onReady()
您使用了匿名函数,但没有让它立即运行以返回值。有两种解决方案
dashboard().onReady()
您的问题可以简化为:var dashboard=function(){};onReady()代码>您的问题可以简化为:var dashboard=function(){};onReady()代码>
var dashboard = (function () {
var onReady = function () {
alert(2);
};
return {
onReady: onReady
}
})(); // Calls as IIFE