【问题标题】:How to read from object with an at sign (@) prepended? [duplicate]如何从前面带有 at 符号 (@) 的对象中读取? [复制]
【发布时间】:2013-06-20 20:12:26
【问题描述】:

当对象被这样定义时,我如何打印出category.uri的值:

如果我尝试using object[0].category.@uri,我会收到以下错误:

Uncaught SyntaxError: Unexpected token +

如果我尝试不使用@符号,我会得到:

未捕获的类型错误:无法读取 undef 的属性 'uri'

基本上:当值前面带有 at 符号时,我如何读取该值? at 符号是什么意思,也就是为什么它首先存在? (在这种情况下,我无法控制我正在使用的 REST-API)

【问题讨论】:

    标签: javascript jquery json rest


    【解决方案1】:

    Javascript 有两种对象访问表示法(称为member operators):点表示法和方括号表示法。这些是相同的:

    document.forms
    document['forms']
    

    您始终可以使用方括号表示法,但不能始终使用点表示法。所以如果你的属性名不符合标识符的规则,你需要使用方括号的形式。

    object[0].category['@uri']
    

    规则是:

    JavaScript 标识符必须以字母、下划线 (_) 或美元符号 ($) 开头;后续字符也可以是数字 (0-9)。因为 JavaScript 区分大小写,所以字母包括字符“A”到“Z”(大写)和字符“a”到“z”(小写)。 (MDN)

    【讨论】:

    • 这也可以:object[0]['category']['@uri']
    • @HarryFink 确实,但它更难阅读,IMO。
    【解决方案2】:

    像这样:

    object[0].category['@uri']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2019-10-27
      相关资源
      最近更新 更多