这是一个非常奇怪的错误,我无法弄清楚为什么会这样。
我有一个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:标签未定义
是否有另一种方法从对象中选择属性?我做错了什么?
答案 0 :(得分:4)
您需要使用bracket notation,因为event-label
不是有效的标识符
dataLayer[3]['event-label']
答案 1 :(得分:2)
在JavaScript中,您有两种获取对象属性的方法:
点符号:object.property
括号表示法:object['property-with-dash']
这是你必须使用的那个:
数据层[3] ['事件类别']
使用括号表示法,您可以使用变量从对象中获取属性,例如:
var eventName = 'event-category';
dataLayer[3][eventName]
会给你相同的结果。