Разницы нет. Просто вы в событие onclick вместо анонимной функции function() { } передаете название (ссылку) на функцию training, которая должна выполнится при наступлении события. А в третьем варианты вы создаете анонимную функцию и внутри нее вызываете функцию training()