Objeto Event al pasar parámetros

Supongamos que tenemos una función func que queremos usar como manejador de eventos. Supongamos que esta función acepta algún parámetro:

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

Usemos esta función como manejador, pasándole un parámetro:

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

Ahora supongamos que además del parámetro queremos obtener en nuestra función el objeto Event. Para esto necesitamos proceder de la siguiente manera:

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

Explique cómo funciona el código proporcionado.

Задание 2

Modifique el código proporcionado para que la función acepte dos parámetros.

Задание 3

Modifique la tarea anterior para que el objeto del evento se pase como primer parámetro de la función, y no como el último.

Задание 4

Modifique la tarea anterior para que el objeto del evento se pase como segundo parámetro de la función, ubicándose entre el primer y el tercer parámetro.