Objeto Event na Passagem de Parâmetros

Suponha que temos uma função func que queremos usar como um manipulador de eventos. Suponha que esta função receba algum parâmetro:

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

Vamos usar esta função como manipulador, passando um parâmetro para ela:

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

Agora, suponha que além do parâmetro, queremos obter em nossa função o objeto Event. Para isso, precisamos proceder da seguinte forma:

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

Explique como o código fornecido funciona.

Задание 2

Modifique o código fornecido para que a função receba dois parâmetros.

Задание 3

Modifique a tarefa anterior para que o objeto de evento seja passado como o primeiro parâmetro da função, e não como o último.

Задание 4

Modifique a tarefa anterior para que o objeto de evento seja passado como o segundo parâmetro da função, ficando entre o primeiro e o terceiro parâmetros.