【发布时间】:2017-11-27 18:47:20
【问题描述】:
我有一个从 3rd 方 API 获取的对象,如下所示:
{
name:"Luke Skywalker",
__typename:"People",
Symbol(id):"ROOT_QUERY.people."
}
虽然“卢克天行者”可以通过简单的object.name访问, 如何访问此对象的 Symbol(id) 属性的值?
【问题讨论】:
-
你的意思是
objectVariable['Symbol(id)']?对我来说看起来很奇怪。或者objectVariable.Symbol(id)? -
我试过了,但它不起作用可能Symbol在javascript中有特殊含义
-
现在这个问题很难回答。您显示的是无效的对象初始化程序,因此我们必须猜测对象的实际创建方式。但是有几种方法可以创建它,具体取决于
id是什么,它们会显着影响问题的答案。 Yury 的回答是一种方式,但请注意,如果该符号是全球注册的,另一种方式将涉及Symbol.for。所以我们只需要更多信息。 -
@T.J.Crowder 这是从 API 获取的响应对象,我想我无法检查对象是如何初始化的,这些值只是从 chrome 控制台复制的。
-
@BakhtiiarMuzakparov:好吧,同样,如何创建符号很重要。无论是
Symbol("id")还是Symbol.for("id")创建它,Chrome 的控制台都会以相同的方式显示符号。详情见我的回答。
标签: javascript ecmascript-6 ecmascript-5