1. Что такое аргументы
Аргументы-это встроенный объект в JavaScript. Все основные функциональные библиотеки JS используют объекты аргументов. Следовательно, объект Agruments необходим для знакомых программистов JavaScript.
Все функции имеют свой собственный объект аргументов, который включает в себя параметры, которые будут вызваны функцией. Это не массив, если используются аргументы типа, возврат «объект». Хотя мы можем вызывать аргументы, вызывая данные. Например, длина и метод индекса. Но толпор и поп -объекты массивов не применимы.
2. Создать гибкую функцию
Кажется, что объект аргумента очень ограничен для использования, но на самом деле это очень полезный объект. Вы можете использовать объект аргумента, чтобы позволить функции вызывать неопределенное количество параметров. В библиотеке базы Дина Эдвардса есть форматированная функция, которая демонстрирует эту гибкость.
Скопируйте код следующим образом: Формат функции (String) {
var args = аргументы;
var pattern = new Regexp ("%([1-" + Arguments.length + "])", "g");
return String (String) .Replace (шаблон, функция (match, index) {
вернуть args [index];
});
};
Мы предоставляем строку шаблона, где вы можете добавить заполнителя к возвратному значению, используя «%1» в «%9». Затем предоставьте девять других параметров для вставки.
Кода -копия выглядит следующим образом: Формат («И %1 хочет знать, чьи %2 вы %3 ″,« бумага »,« Рубашка »,« Wear »);
Приведенный выше код вернется: и бумаги хотят знать, чья рубашка вы носите ».
Есть кое -что, на что нам нужно обратить внимание. JavaScript позволяет нам передать любое количество параметров в функцию, независимо от того, как мы определяем эту функцию. Объекты аргументов разрешены для них.
3. Преобразовать объект аргументов в настоящий массив
Хотя объект Arguments не является реальным массивом JavaScript, мы можем легко преобразовать его в стандартные данные, а затем выполнить операции массива.
Кода кода выглядит следующим образом: var args = array.prototype.slice.call (аргументы);
Теперь эта переменная ARG содержит стандартный объект массива JavaScript, содержащий все параметры функции.
4. Создание функций с помощью объектов предустановленных аргументов
Объект аргументов позволяет нам выполнять все типы методов JavaScript. Вот определение функции MakeFunc. Эта функция позволяет нам предоставлять ссылку на функцию и все параметры этой функции. Он вернет анонимную функцию, чтобы вызвать указанную вами функцию, а также предоставит параметры, прикрепленные к вызову анонимной функции.
Скопируйте код следующим образом: function makefunc () {
var args = array.prototype.slice.call (аргументы);
var func = args.shift ();
return function () {
return func.apply (null, args.concat (array.prototype.slice.call (аргументы)));
};
}
Первый объект аргумента предоставляет MakeFunc ссылку на функцию, которую вы хотите позвонить. Он удалил его из массива аргументов. Затем MakeFunc возвращает анонимную функцию для запуска указанного метода.
Аргумент первого приложения указывает на объем вызова функции, в основном указываемый ключевыми частями функции. Давайте сначала оставим это как нулевое. Второй аргумент - это массив, который будет преобразован в объект аргумента для этой функции. MakeFunc объединяет исходные значения массива в объект аргументов и массив вызываемых функций.
Вам нужно вывести шаблон, который всегда является одной и той же позицией, чтобы вы не всегда называли функцию формата каждый раз, когда ссылаетесь на шаблон. Вы можете использовать общую функцию MakeFunc для возврата функций, которые могут вызовать формат, и автоматически дополнять шаблон.
Кода кода выглядит следующим образом: var majortom = makefunc (формат, «Это основной Том контроль над наземным контролем. Я %1.»);
Вы можете назвать функцию Majortom так:
Кода -копия выглядит следующим образом: Majortom («Проходит через дверь»);
Majortom («Плавание самым своеобразным способом»);
Каждый раз, когда вы называете Majortom, он будет вызывать функцию формата и первый аргумент одновременно, и уже написанный шаблон. Тогда он вернется
Скопируйте код следующим образом: «Это майор Том для управления наземным управлением. Я иду через дверь».
«Это майор Том для управления наземным управлением.
5. Создайте функцию, которая ссылается на себя
Вы можете подумать, что это круто, но есть больше сюрпризов для аргументов. У него есть другие полезные функции: метод Callee. Arguments.callee включает ссылку на функцию для создания объекта аргумента. Так как его использовать?
Метод Arguments.callee позволяет анонимной функции очень удобно указывать на себя.
Повторение - это функция, которая несет ссылку на функцию и два числа. Первое число - сколько раз называется функция, а второе число - это интервал между каждым вызовом, в миллисекундах.
Кода кода следующая: функция повторения (fn, times, delay) {
return function () {
if (times> 0) {
fn.apply (null, аргументы);
var args = array.prototype.slice.call (аргументы);
var self = arguments.callee;
settimeout (function () {self.apply (null, args)}, задержка);
}
};
}
Функция повторения использует метод Arguments.callee для получения ссылки от переменной, чтобы указать на функцию, которая выполняет исходную инструкцию. Таким образом, анонимную функцию можно снова вызвать.
У меня есть супер короткая функция, которая размещает строку и выполняет метод оповещения.
Скопируйте код следующим образом: Функция Comms (s) {
предупреждение (ы);
}
Тем не менее, я хочу создать специальную версию, с помощью которой я могу повторить это действие три раза, каждый раз, как 2 секунды. Тогда мы можем
Кода кода выглядит следующим образом: var somethingWrong = repeat (Comms, 3, 2000);
что -то песен («Вы меня слышите, майор Том?»);
Результатом вызова функции ComeWomeWrong состоит в том, чтобы повторить это действие три раза, с каждым интервалом оповещения 2 секунды.
Хотя аргументы не используются часто и немного странные, они полны сюрпризов и стоит учиться.