Книга: JavaScript. Подробное руководство, 6-е издание

8.3.3. Использование свойств объекта в качестве аргументов

8.3.3. Использование свойств объекта в качестве аргументов

Когда функция имеет более трех параметров, становится трудно запоминать правильный порядок их следования. Чтобы предотвратить ошибки и избавить программиста от необходимости заглядывать в документацию всякий раз, когда он намеревается вставить в программу вызов такой функции, можно предусмотреть возможность передачи аргументов в виде пар имя/значение в произвольном порядке. Чтобы реализовать такую возможность, при определении функции следует предусмотреть передачу объекта в качестве единственного аргумента. Благодаря такому стилю пользователи функции смогут передавать функции объект, в котором будут определяться необходимые пары имя/значение. В следующем фрагменте приводится пример такой функции, а также демонстрируется возможность определения значений по умолчанию для опущенных аргументов:

// Скопировать length элементов из массива from в массив to.
// Копирование начинается с элемента from_start в массиве from
// и выполняется в элементы, начиная с to_start в массиве to.
// Запомнить порядок следования аргументов такой функции довольно сложно.
function аггаусору(/* массив */ from, /* индекс */ from_start,
        /* массив */ to, /* индекс */ to_start,
        /* целое */ length)
{
  // здесь находится реализация функции
}
// Эта версия функции чуть менее эффективная, но не требует запоминать порядок следования
// аргументов, а аргументы from_start и to_start по умолчанию принимают значение 0.
function easycopy(args) {
  arraycopy(args.from,
  args.from_start || 0,
  // Обратите внимание, как назначаются args.to,
  // значения по умолчанию
  args.to_start || 0, args.length);
}
// Далее следует пример вызова функции easycopy():
var а = [1,2,3,4], b = [];
easycopy({from: a, to: b, length: 4});

Оглавление книги


Генерация: 4.040. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз