Доступ к нескольким аргументам - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь создать функцию для двух или более параметров.Однако я не понимаю, почему для sym ([1, 2, 3], [5, 2, 1, 4]);

function sym(args) {
  return args;
}

возвращает только [1, 2, 3]

но

 function sym(args) {
  return args;
 }

возвращает {0: [1, 2, 3], 1: [5, 2, 1, 4]}.

и

function sym(args) {
 args = arguments;
 console.log(args);
}

возвращает {0: [Циркуляр], 1: [5, 2, 1, 4]}

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вы определяете функцию с единственным аргументом с именем args.То, что вы ищете, называется переменные аргументы (или переменные параметры), что означает «0 или более аргументов».

Либо используйте остальные параметры :

function sym(...args) {
  return args;
}

Или, если вы используете старую версию JavaScript, используйте arguments:

function sym() {
  return Array.from(arguments);
}

Ваш последний пример довольно красив.Когда вы делаете args = arguments (кроме строгого режима), вы изменяете arguments неявно и даете ему ссылку на себя (отсюда [circular]).Я настоятельно рекомендую строгий режим , чтобы избежать этих причуд.

0 голосов
/ 22 октября 2018

Существуют различные способы записи и деструктуры, IE:

sym([[1,2,3], [1,2,3,4,5]]);

function sym([arg1, arg2]) {
 console.log(arg1,arg2);
}

or

function sym(args) {
 console.log(args);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...