Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个JavaScript对象数组表达式{}[]是什么意思?_Javascript - Fatal编程技术网

这个JavaScript对象数组表达式{}[]是什么意思?

这个JavaScript对象数组表达式{}[]是什么意思?,javascript,Javascript,我试图理解我在砖石工程中发现(并实际使用)的以下JavaScript代码: var docElem = document.documentElement; var transitionProp = typeof docElem.style.transition == 'string' ? 'transition' : 'WebkitTransition'; var transitionEndEvent = { WebkitTransition: 'webkitTransitionEn

我试图理解我在砖石工程中发现(并实际使用)的以下JavaScript代码:

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 ];