Math.min требует одно или несколько значений, переданных в качестве параметров. Поскольку строки даты были помещены в массив, при передаче массива в качестве значения будет использоваться только массив, а не даты.
Использование apply передаст элементы массива в качестве аргументов, это фактически аналогично использованию синтаксиса расширения:
Math.min(...dates);
Поскольку первый аргумент, переданный apply - это значение, используемое для this , и Math.apply не имеет значения, что такое this , null передается (вы можете передать любое значение).
Этот метод был распространен до введения синтаксиса расширения в ECMAScript 2016 (ed 7).