2013-07-10 48 views
1

我有一個關於js對象文字中字段名稱的問題。我有一個函數test,看起來像這樣:JavaScript對象文字中字段名稱的字符串

function test() 
{ 
    var o1 = {f1:"Hello"}; 
    var o2 = {"f1":"Hello"}; 
    alert(o1.f1 + " " + o2.f1); 
} 

,其結果是出現了「你好你好」寫在它(測試通過觀察所使用的字符串的所有字段名的代碼啓發箱)。我的問題是,這兩個對象有什麼區別?引用字段名稱與否是否有區別?如果兩者在功能上相同,是否有任何特定的風格指南?

+1

一個有趣的事情要注意:儘管就javascript而言,兩者是相同的,但在處理JSON語言(顯然與javascript符號非常相似)時,您需要引用這些名稱。就個人而言,無論如何,我總是會引用這些名稱,因爲我經常使用其他語言處理JSON對象。 –

回答

4

我的問題是,這兩個對象有什麼區別?

它們是相同的。

引用字段名與否之間有區別嗎?

引用的屬性名稱可以是不是有效標識符的東西。

例如{ "foo-bar": 1 }很好,但是{ foo-bar: 1 }是一個語法錯誤。

+0

您如何訪問不是有效標識符的屬性? – James

+2

請參閱[如何使用連字符引用JavaScript對象屬性?](http://stackoverflow.com/questions/7122609/how-do-i-reference-a-javascript-object-property-with-a -hyphen-in-it) – Quentin

+0

facedesk。我應該知道這一點。謝謝 – James

相關問題