JavaScript:使用函数参数检索javascript对象键

时间:2013-09-05 21:07:17

标签: javascript object

有没有理由这是'未定义的,有没有办法避免它?

我正在尝试从错误消息对象中动态检索所需的错误消息。这是它的一个非常简化的版本。

var language = {
    errorMsg: {
        helloWorld: "hello world"
    }
};

function displayErrorMsg(msg) {
    console.log(msg); // output: helloWorld
    console.log(language.errorMsg.helloWorld); // output: hello world
    console.log(language.errorMsg[msg]); // output: Uncaught ReferenceError: helloWorld is not defined 
}

displayErrorMsg('helloWorld');

3 个答案:

答案 0 :(得分:2)

在您的示例中language.errorMsgTSD不存在

你可以这样做:

function displayErrorMsg(msg) {
    console.log(language.errorMsg[msg]); // output: hello world
}

答案 1 :(得分:1)

errorMsgTSD未在任何地方定义。

答案 2 :(得分:0)

未定义,因为language没有errorMsgTSD字段。你需要像这样创建它:

var language = {
    errorMsg: {
        helloWorld: "hello world"
    },
    errorMsgTSD: {
        helloWorld: "hello world"
    },
};

或者您可能需要将功能更改为:

function displayErrorMsg(msg) {
    console.log(msg);
    console.log(language.errorMsg[msg]);
}