-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 に答える