-4

この形式のJavaScriptオブジェクトがあるとしましょう。

var myJsObject = 
{
    A.b: 1
    A.c: 2
}

たとえば、の値を取得するにはどうすればよいA.cですか?

私は試した:

var value = myJsObject['A.c']

しかし、それは私にエラーを与えましたUncaught TypeError: Cannot set property 'A.c' of undefined

ありがとうございました

4

3 に答える 3

4

「Object」キーワードは必要ありません。プロパティを引用する必要があります。これは私のコンソールで機能しました:

var myJsObject = { 'A.b': 1, 'A.c': 2 };
var value = myJsObject['A.c'];
console.log(value); // 2
于 2012-11-30T18:04:37.000 に答える
1

ドット表記を連鎖させることはできません。これは機能するはずです:

var myJsObject = {
    A: {
      b: 1,
      c: 2
    }
}

または、 のようなプロパティ名がA.b必要な場合、名前に特殊文字が含まれている場合は引用符で囲む必要があります。

var myJsObject = 
{
    'A b': 1,
    'A.c': 2
}
于 2012-11-30T18:08:52.583 に答える
1

コード

var myJsObject = 
{
    A.b: 1
}

ピリオドは言語で特別な意味を持つため、引用符で囲む必要があるため、構文エラーが発生します。JavaScript インタープリターは、オブジェクトからプロパティA.bを取得しようとして読み取りましたが、操作ではなく識別子名を想定しています。同様の例を考えてみましょう:bA

var myJsObject = 
{
    foo-bar: 1
}

ここで、ハイフンは減算演算子として読み取られ、構文エラーも発生します。

代わりに、引用符で囲まれたプロパティ名を使用してください。

var myJsObject = 
{
    "A.b": 1,
    "A.c": 2
}

(また、コードには、"A.b": 1追加した行の後にカンマがありません。)

于 2012-11-30T18:10:38.170 に答える