, чтобы сохранить свой прогресс
const half = ({max, min}) => (max + min) / 2.0; // use function argument destructuring
Почему этого достаточно и не надо указывать, что данные берутся именно из объекта stats?
Мне казалось, что так правильно:
const half = (stats{max, min}) => (max + min) / 2.0; // use function argument destructuring
stats{max, min} - подобный код вообще невалидный в JS. А по поводу вашего вопроса: давайте еще подробнее разберем синтаксис.
Здесь выполняется операция присвоения (с использованием оператора присвоения (или присваивания, кому как больше нравится)). То есть здесь сразу надо разбить на две части: то, что слева от знака = и то, что справа. При этом порядок выполнения тут справа налево, то есть сначала будет вычислен конечный результат справа, и только потом этот результат будет передан в левую часть, то есть в нашем случае присвоен константе half. И здесь надо понимать, что константа здесь не обязана называться именно half. Какое бы мы не дали допустимое имя здесь, она все равно получила бы результат выполнения из правой части.
А что у нас справа? А тут у нас просто стрелочная функция. При этом обратите внимание, что в данном случае присваивается не результат этой функции, а именно сама функция. То есть сейчас она только создана, но ее еще не вызывали, параметров в нее никаких не передавали. Вызывают ее позже:
Вот здесь уже ее вызывают, а результат ее выполнения уходит в console.log(). И вот здесь важно понять: в вызов функции half уходит параметр-объект stats. То есть в нашу функцию может быть передан любой параметр, или вообще не будет передан (javascript это позволяет). Другой вопрос что мы ожидаем в нашей функции. А в ней мы ожидаем, что придет объект, который содержит в себе свойства max и min. И не важно каково имя переменной этого объекта (это может быть вообще анонимный объект). А вот если придет не объект, а, к примеру, null или undefined, то у нас возникнет ошибка, потому что из них нельзя так свойства извлечь.
Подитожим: не важно какое имя у параметра функции, важно что мы в нее передаем.