还有其他方法可以在javascript中获取对象属性吗?

时间:2014-08-30 03:31:50

标签: javascript object

这是一个非常奇怪的错误,我无法弄清楚为什么会这样。

我有一个dataLayer数组,里面有对象。

dataLayer[3]
Object {event: "gerar-evento", event-category: "Chat", event-acion: "Vendas", event-label: "Pré Fixo 15"}

当我尝试选择此对象的属性时,我收到错误

如果我尝试:

dataLayer[3].event //gerar-evento

它工作正常。

但如果我尝试:

dataLayer [3] .event-label // ReferenceError:未定义标签

我收到此错误:ReferenceError:标签未定义

是否有另一种方法从对象中选择属性?我做错了什么?

2 个答案:

答案 0 :(得分:4)

您需要使用bracket notation,因为event-label不是有效的标识符

dataLayer[3]['event-label']

答案 1 :(得分:2)

在JavaScript中,您有两种获取对象属性的方法:

  1. 点符号:object.property

  2. 括号表示法:object['property-with-dash']这是你必须使用的那个:

    数据层[3] ['事件类别']

  3. 使用括号表示法,您可以使用变量从对象中获取属性,例如:

     var eventName = 'event-category';
     dataLayer[3][eventName]
    

    会给你相同的结果。