0

私はツリー構造を模倣するためにこれを持っています:

var MODULESYSTEM =
{
    modules:
    {
        a : function() { return 'modules.a'; }
        b : function() { return 'modules.b'; }
        c :
        {
            d : function() { return 'modules.c.d'; }
        }
    }
}

これMODULESYSTEM.modules.a();も有効ですMODULESYSTEM.modules.c.d();。しかし、次のようなものが必要な場合はどうなりMODULESYSTEM.modules.c();ますか? 「modules.c」を返す必要があります

4

1 に答える 1

3

そのようなデータ構造を 1 行で宣言することはできません。手続き的に構築する必要があります。

var MODULESYSTEM = {
    modules: {
        // Other top-level namespace objects
        c: function() {
            return 'modules.c';
        }
    }
};

// Later:
MODULESYSTEM.modules.c.d = function() { return 'modules.c.d'; };

解決しようとしている問題の背景を詳しく説明していただければ、この問題に対するより良い解決策があるかもしれません。

于 2013-09-20T16:25:00.110 に答える