У меня вопрос: почему бы не передать аргументы функции в ассоциативный массив? Или объект? Это плохая привычка?

Вместо

function (a, b, c) { return a }

Почему нет

function (array) { return array.a }

?

Причина:

  1. Когда мы вызываем эту функцию, мы передаем аргументы в неправильном порядке, она не сломается.

  2. Когда функция обновляется и требуемые аргументы изменяются (например, мы добавляем «d» в качестве аргументов), нам не нужно изменять объявление функции args

Я новичок в программировании, извините за глупый вопрос.

0
Terry D 14 Сен 2018 в 09:01

2 ответа

Лучший ответ

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

Определенно неплохо передавать объекты или массивы в качестве параметров. Бывают случаи, когда это почти наверняка лучший вариант.

Вероятно, вам следует передать объект с вашими аргументами, если у вас есть большое количество параметров. Это упрощает чтение и упрощает изменение в будущем. Если вы сделаете это, вероятно, лучше всего будет деконструировать ваш объект в начале определения функции следующим образом:

function doStuff (parameterObject) {
  const { a, b, c } = parameterObject;
  // ...
}

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

Не существует установленного правила о том, что передавать функциям, но самое главное - относиться к этому с умом.

0
Christopher Bradshaw 14 Сен 2018 в 06:42

Вам следует прочитать об этом элегантном шаблоне - Получите объект, вернуть объект (RORO) Вы можете влюбиться в это.

0
IVO GELOV 14 Сен 2018 в 06:44