这个JavaScript对象数组表达式{}[]是什么意思?
我试图理解我在砖石工程中发现(并实际使用)的以下JavaScript代码:这个JavaScript对象数组表达式{}[]是什么意思?,javascript,Javascript,我试图理解我在砖石工程中发现(并实际使用)的以下JavaScript代码: var docElem = document.documentElement; var transitionProp = typeof docElem.style.transition == 'string' ? 'transition' : 'WebkitTransition'; var transitionEndEvent = { WebkitTransition: 'webkitTransitionEn
var docElem = document.documentElement;
var transitionProp = typeof docElem.style.transition == 'string' ?
'transition' : 'WebkitTransition';
var transitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd',
transition: 'transitionend'
}[ transitionProp ];
表达式{}[]是否意味着将transitionProp变量添加到transitionEndEvent对象?
docElem.style.transition的表达式类型是否可以确定是否支持css转换
谢谢你的帮助 它返回对象的特定元素 例如:
var obj = { key: 'value' };
var val = obj['key']);
可缩短为:
var val = { key: 'value' }['key'];
(显然,在这种情况下,这是毫无意义的,但它说明了正在发生的事情。)最初的两行
var docElem = document.documentElement;
var transitionProp = typeof docElem.style.transition == 'string' ?
'transition' : 'WebkitTransition';
将值transition
或WebkitTransition
分配给transitionProp
然后创建一个对象,通过使用[transitionProp]
它将更像['transition'/'WebkitTransition']
内部的transitionProp
的值
var transitionEndEventObj = {
WebkitTransition: 'webkitTransitionEnd',
transition: 'transitionend'
};
var transitionEndEvent = transitionEndEventObj[ transitionProp ];
换句话说,它要么像这样
var transitionEndEvent = transitionEndEventObj[ 'transition'];
或
此处
transitiondevent
将包含:
“WebKittTransitionEnd”
如果transitionProp==“WebKittTransition”
或
'transitionend'
如果transitionProp=='transition'
为我们使用的JSON添加一些属性
object["property"] = value;
因此,编写代码中的上述行是为了从对象访问属性名transitionProp
因此变量transitionEndEvent将保存transitionProp属性的值
var transitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd',
transition: 'transitionend'
}[ transitionProp ];
{}
创建一个对象[x]
返回其值为x
的属性。它允许您使用变量引用对象的属性。请参阅:最后六行的作用与var transitiononedevent=typeof docElem.style.transition=='string'?'transitionend':'WebKittTransitionEnd'代码>。。。有人只是在“聪明”谢谢大家!帮了我很多。。。我同意加洛曼达。对于一件简单的事情来说非常复杂。这里没有JSON。
var transitionEndEvent = {
WebkitTransition: 'webkitTransitionEnd',
transition: 'transitionend'
}[ transitionProp ];