Обект Event при предаване на параметри

Да предположим, че имаме някаква функция func, която искаме да използваме като манипулатор на събитие. Нека тази функция приема някакъв параметър:

jsxfunction func(arg) {
  console.log(arg);
}

Нека използваме тази функция като манипулатор, като й подадем параметър:

jsxfunction App() {
  function func(arg) {
    console.log(arg);
  }
  
  return <div>
    <button onClick={() => func('eee')}>act</button>
  </div>;
}

Да предположим, че освен параметъра искаме да получим в нашата функция обекта Event. За това трябва да постъпим по следния начин:

jsxfunction App() {
  function func(arg, event) {
    console.log(arg, event);
  }
  
  return <div>
    <button onClick={event => func('eee', event)}>act</button>
  </div>;
}
Задание 1

Обяснете как работи показаният код.

Задание 2

Променете показания код така, че функцията да приема два параметъра.

Задание 3

Модифицирайте предходната задача така, че обектът със събитието да се предава като първи параметър на функцията, а не като последен.

Задание 4

Модифицирайте предходната задача така, че обектът със събитието да се предава като втори параметър на функцията, като се намира между първия и третия параметър.