Так ведь передаётся не
функция function(){...}
, а
выражение users.sort(...)
Выражение, которое сразу же выполняется, чтобы получилось значение. И вот это значение будет (?) обработчиком события клика. Т.е. в этом коде предлагается по клику не функцию выполнить, а сортированный массив – даже не знаю, что с ним делать.
Чтобы не сразу, оберните код в .. кхм .. функцию!
button.addEventListener('click', function() {
users.sort(
function(a, b){
return b.age-a.age
}
)
});
// или покороче
button.addEventListener('click', () => users.sort((a, b) => b.age - a.age));
Так только по событию клика массив, наконец, отсортируют.