-2

这是“未定义”的原因,有没有办法避免它?

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

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');
4

3 回答 3

2

那么在你的例子language.errorMsgTSD中不存在

你可以这样做:

function displayErrorMsg(msg) {
    console.log(language.errorMsg[msg]); // output: hello world
}
于 2013-09-05T21:09:51.907 回答
1

errorMsgTSD 没有在任何地方定义。

于 2013-09-05T21:09:30.843 回答
0

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

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

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

function displayErrorMsg(msg) {
    console.log(msg);
    console.log(language.errorMsg[msg]);
}
于 2013-09-05T21:09:37.600 回答