javascript - JavaScript 中对象定义末尾的这个方括号后缀是什么意思?

标签 javascript object-notation

JavaScript code

我在 GitHub 上浏览某人的代码时遇到了这个,我不知道这意味着什么。我会用谷歌搜索,但我是 JavaScript 的新手,不知道如何用谷歌搜索它。任何信息将不胜感激!

var charStr = String.fromCharCode(evt.which);
var value   = (evt.type == 'keydown') ? true : false;

idx = {
  '1': 0x1,'2': 0x2,'3': 0x3,'4': 0x4,
  'Q': 0x4,'W':0x5,'E': 0x6,'R': 0xD,
  'A': 0x7,'S':0x8,'D': 0x9,'F': 0xE,
  'Z': 0xA,'X':0x0,'C': 0xB, 'V':0xF,
}[charStr];

最佳答案

这等同于说:

const idxObj = {
  '1': 0x1,'2': 0x2,'3': 0x3,'4': 0x4,
  'Q': 0x4,'W':0x5,'E': 0x6,'R': 0xD,
  'A': 0x7,'S':0x8,'D': 0x9,'F': 0xE,
  'Z': 0xA,'X':0x0,'C': 0xB, 'V':0xF,
};
idx = idxObj[charStr];

它正在创建对象并同时访问对象属性。

进一步阅读:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#Bracket_notation

关于javascript - JavaScript 中对象定义末尾的这个方括号后缀是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54739369/

相关文章:

javascript - 为什么我的 setTimeout 回调没有被调用?

javascript - Rails 5 上的 Turbolinks 和 jQuery 兼容性

python - Python 文字有名称吗? JavaScript 文字如何称为 JSON?

javascript - 如何访问javaScript对象属性NAME而不是VALUE

javascript - 如何使用 jQuery 自动打开页面上的所有链接?

javascript - D3 : remap mousewheel to be panning gesture instead of zoom gesture

javascript - jsTree:跳出编辑模式?

JavaScript 对象表示法 - 在同一对象内使用方法?

javascript - 如何在创建对象时设置属性的属性