Как работает данный код? Почему объект выводиться?
js
window.addEventListener('keydown',(e)=>{
obj = {
'1': one,
'2': two,
'3': three,
'4': four,
'ArrowLeft': left,
'ArrowRight': right,
}[e.key] // как работает данная часть кода? тут не понятно
obj?.(e.key)// здесь понятно
})
function one(e){
console.log(e)
}
function two(e){
console.log(e)
}
function three(e){
console.log(e)
}
function four(e){
console.log(e)
}
function left(e){
console.log(e)
}
function right(e){
console.log(e)
}
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Ваш вопрос
obj = {
'1': one,
'2': two,
'3': three,
'4': four,
'ArrowLeft': left,
'ArrowRight': right,
}[e.key] // как работает данная часть кода? тут не понятно
можно переписать так
let obj = {
'1': one,
'2': two,
'3': three,
'4': four,
'ArrowLeft': left,
'ArrowRight': right,
};// Создание и присвоение объекта;
let func = obj[e.key]; // взятие значения свойства e.key объекта obj и присвоение переменной func
Поскольку у вас 2 операции производятся за раз. То в obj у вас может храниться указатель на функцию.