2013-07-10 64 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

相关问题