对象属性名称作为数字

新手上路,请多包涵

根据 MDN JavaScript 文档,您可以使用整数定义对象文字属性名称:

此外,您可以使用数字或字符串文字作为属性名称。

像这样:

 me = {
    name: "Robert Rocha",
    123: 26,
    origin: "Mexico"
}

我的问题是,如何引用以整数作为名称的属性?我尝试了通常的 me.123 但出现错误。我能想到的唯一解决方法是使用 for-in 循环。有什么建议么?

原文由 Robert 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 959
2 个回答

您可以像引用数组一样引用对象的属性,并使用 me[123]me["123"]

原文由 Tom 发布,翻译遵循 CC BY-SA 3.0 许可协议

点符号仅适用于作为有效标识符的属性名称。标识符必须以字母、$、_ 或 unicode 转义序列开头。对于所有其他属性名称,您必须使用方括号表示法。

在对象文字中,属性名称必须是标识符名称、字符串文字或数字文字(由于属性名称必须是字符串,因此将被转换为字符串):

 var obj = {1:1, foo:'foo', '+=+':'+=+'};

alert(obj[1] + ' ' + obj.foo + ' ' + obj['+=+']); // 1 foo +=+

原文由 RobG 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题