JavaScript 中调用的变量后面的数组是什么?

What is an array right after a variable called in JavaScript?

我对这一行很好奇,从来没有见过变量后面有数组的这种格式:

pics[coinToss() === 'heads' ? 'kitty' : 'doggy'] 渲染 pics.doggy 或 pics.kitty

是否有关于此格式的具体文档我可以阅读更多?

import ReactDOM from 'react-dom';

function coinToss () {
  // Randomly return either 'heads' or 'tails'.
  return Math.random() < 0.5 ? 'heads' : 'tails';
}

const pics = {
  kitty: 'https://content.codecademy.com/courses/React/react_photo-kitty.jpg',
  doggy: 'https://content.codecademy.com/courses/React/react_photo-puppy.jpeg'
};

const img = <img src={pics[coinToss() === 'heads' ? 'kitty' : 'doggy']} />;

ReactDOM.render(
    img, 
    document.getElementById('app')
);

它不是一个数组,它是一个 property access - 就像当您使用 myArray[5] 访问某些数组的元素以获取第 6 个元素(即 属性 5数组),但它对对象的字符串属性的作用相同: pics['kitty'] 等同于 pics.kitty.

访问的 属性 的名称是 coinToss() == 'heads' ? 'kitty' : 'doggy' 的计算结果(根据结果使用 ?: 产生 'kitty''doggy' coinToss()).

这里它在功能上与coinToss() === 'heads' ? pics.kitty : pics.doggy相同。