嵌套命名空间 javascript

Nested namspace javascript

我正在 javascript 中编写用户界面,它将从 HTML 获取数据并使用 javascript 通过 API 传递数据。我试图在不编写一堆 if 语句的情况下获取数据并将其传递给函数。但是,有些动作在其他控制器中具有相同的名称。所以我有一个嵌套的命名空间,现在我无法访问嵌套函数。希望有人能帮忙。

在此之前的一切工作正常。

var apiHandler = {
    user: {
        login: function(){
            console.log("test");
        }

    }
};

function callAPI(apiObject){
            //console.log(apiObject);
    var apiData = JSON.stringify(apiObject);
    $.ajax({
        type: "POST",
        url: 'https://dev.tragicstudios.com/clients/trego/api/index.php',
        data: {'enc_request':apiData},
        dataType: 'json',           
        success: function(data){
            var apiFunction = apiObject.controller+"."+apiObject.action;
            console.log(apiFunction);
            apiHandler["user.login"]();
            return data;
        }           
    });
}

只需将控制器和操作部分用作单独的键,而不是将它们组合在一起:

apiHandler[apiObject.controller][apiObject.action]();

对于这个具体的例子,而不是:

        apiHandler["user.login"]();

尝试

        apiHandler["user"]["login"]();