Формат параметров Javascript - PullRequest
0 голосов
/ 10 ноября 2018

Я не понимаю разницы между этими двумя функциями:

function animal({ cat }){
  return cat 
}

function animal(cat){
  return cat 
}

зачем использовать один над другим? Есть ли преимущество?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

вызов этих двух функций

animal({cat:9}); возвращает 9

animal(9); возвращает undefined, поскольку число 9 не имеет свойства cat (все объекты в js)

мы используем первую функцию, когда хотим узнать о свойстве cat объекта

мы используем второй, когда мы хотим вызвать объект напрямую

0 голосов
/ 10 ноября 2018

Первая функция вернет свойство 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, что и вывод.

Итак, чтобы ответить на ваш вопрос, оба используются для выполнения различных видов функций, поэтому у каждого из них есть свои преимущества в определенных сценариях.

...