讓我們說我有這種形式的JavaScript對象:閱讀的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
謝謝
讓我們說我有這種形式的JavaScript對象:閱讀的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
謝謝
你並不需要「對象」的關鍵字,應該引用屬性。這工作在我的控制檯:
var myJsObject = { 'A.b': 1, 'A.c': 2 };
var value = myJsObject['A.c'];
console.log(value); // 2
我知道這是一個錯字,但我仍然遇到同樣的問題 – user765368
您是否引用了像我的示例中的「A.b」和「A.c」屬性? – gpojd
@gpojd - 您的屬性之間缺少逗號 – bPratik
代碼
var myJsObject =
{
A.b: 1
}
會產生語法錯誤,因爲句點必須加引號,因爲它們在語言中有特殊含義。 JavaScript解釋器讀取A.b
作爲嘗試從A
對象獲取b
屬性,但它期望標識符名稱而不是操作。考慮一個類似的例子:
var myJsObject =
{
foo-bar: 1
}
這裏,連字符是讀取減法運算符,並且還會產生語法錯誤。
相反,使用帶引號的屬性名稱:(。此外,你的代碼丟失,我在加入爲好"A.b": 1
行之後逗號)
var myJsObject =
{
"A.b": 1,
"A.c": 2
}
你應該張貼一個實際的例子。你顯示的錯誤與你應該得到你的例子的錯誤不符。 –
你在這裏有什麼是不是有效的JavaScript作爲A.b不能成爲一個屬性名稱,至少沒有引號周圍。 – jfriend00