1

JavaScript 代码

我在 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];
4

3 回答 3

3

这和说的一样:

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

于 2019-02-18T01:53:27.293 回答
2

基本上,您所看到的是直接在同一定义中访问对象中的属性。

让我们用一个更简单的例子:

const ourObjectResponse = {
    foo: 'bar'
}['foo']
console.log(ourObjectResponse) // 'bar'

这是因为您正在做的是定义一个对象并立即从该对象中获取一个值。

您可以将其更改为:

const ourObject = {
    foo: 'bar'
};
const ourObjectResponse = ourObject['foo']
console.log(ourObjectResponse) // 'bar'
于 2019-02-18T01:56:22.280 回答
0

您可以使用方盒符号访问对象的属性。这通常在属性中有空间的情况下很有帮助。像 obj['first name']。

于 2019-02-18T01:59:48.120 回答