Что означает этот суффикс в конце определения объекта в JavaScript?

Код JavaScript

Я просматривал чей-то код на GitHub и наткнулся на это, и понятия не имею, что это значит. Я бы гуглил, но я новичок в JavaScript и понятия не имею, как это Google. Будем благодарны вам за любую информацию!

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

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

В основном вы видите доступ к свойству объекта непосредственно в том же определении.

Давайте использовать более простой пример:

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

это потому, что вы делаете определение объекта и сразу же получаете значение из этого объекта.

Вы можете изменить это на что-то вроде:

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

Вы можете получить доступ к свойству объекта, используя квадратные обозначения. Обычно это полезно в тех случаях, когда в собственности есть место. Как obj['имя'].

Другие вопросы по тегам