0

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) }

HLEB HLEB
  • 349
  • 1
  • 9

1 Answers1

1

Ваш вопрос

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 у вас может храниться указатель на функцию.

Aziz Umarov
  • 22,567
  • 2
  • 10
  • 33