Что означает этот суффикс в конце определения объекта в 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['имя'].