02.ii Arguments object

В теле функции есть специальный идентификатор arguments (неявный объект), который ссылается на объект Arguments, присутствующий в вызове каждой функции. Объект Arguments – это объект, подобный массиву, позволяющий извлекать переданные функции значения по их номерам, а не по именам. JavaScript-функции при помощи arguments могут быть написаны таким образом, чтобы работать с любым количеством аргументов.

Основные свойства:

  • Элементы массива arguments позиционно соответствуют переданным аргументам в функцию.

  • В нестрогом режиме изменяя значение в arguments меняется и значение локальной переменной. В строгом это запрещено.

  • Свойство arguments.length определяет количество аргументов фактически переданных при вызове функции (стоит отличать от свойства length самой функции - там это число параметров).

  • Начиная c ES6 arguments является итерируемым.

function foo() {
  const obs = merge(arguments);
  ...
}

В ES6 стоит использовать оператор spread вместо arguments. Заметим, что rest — настоящий массив, с методами map, forEach и другими, в отличие от arguments.

function showName(firstName, lastName, ...rest) {
  ...
}

Last updated