Первая функция вернет свойство cat
от объекта, который передается, так как использует деструктурирующее присвоение . Второй вернет полный объект cat
, который является объектом, который был передан.
Например, первая функция эквивалентна:
function animal(catObj){
return catObj.cat;
}
Это означает, что когда вы вызываете animal()
, вы проходите через объект, у которого есть свойство cat
.
например:
const myCatObj = {
cat: true,
dog: false,
name: "Meow"
}
animal(myCatObj); // retruns true
Итак, если мы посмотрим на первую функцию, она извлечет свойство cat
и вернет true
.
Ваша вторая функция просто вернет весь объект, переданный в функцию. Поэтому, если бы мы прошли через myCatObj
, мы бы получили то же содержимое в myCatObj
, что и вывод.
Итак, чтобы ответить на ваш вопрос, оба используются для выполнения различных видов функций, поэтому у каждого из них есть свои преимущества в определенных сценариях.