我想要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 } });

我想将我的JavaScript对象组织成类似“子模块”的形式,我写了以下内容:

'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