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

В JavaScript 1.1 и более поздних версиях тело функции автоматически получает локальную переменную по имени

<b>arguments</b>
, которая ссылается на объект
<b>Arguments</b>
. Этот объект представляет собой массив значений, переданных функции в качестве аргументов. Не путайте его с устаревшим свойством
<b>arguments[],</b>
описанным ранее. Подробности см. в статье об объекте
<b>Arguments</b>
.

Function.apply()

вызывает функцию как метод объекта

Синтаксис

<b>функция, apply(этот_объект, аргументы)</b>

Аргументы

этот_объект Объект, к которому должна быть применена функция. В теле функции аргумент этот_объект становится значением ключевого слова this. Если указанный аргумент содержит значение null, используется глобальный объект.

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

Возвращаемое значение

Значение, возвращаемое при вызове функции.

Исключения

<b>ТуреЕrror</b>
Генерируется, если метод вызывается для объекта, не являющегося функцией, или с аргументом аргументы, не являющимся массивом или объектом Arguments.

Описание

Метод

<b>apply()</b>
вызывает указанную функцию, как если бы она была методом объекта, заданного аргументом этот_объект, передавая ей аргументы, которые содержатся в массиве аргументы. Он возвращает значение, возвращаемое функцией. В теле функции ключевое слово this ссылается на объект этот_объект.

Аргумент аргументы должен быть массивом или объектом

<b>Arguments</b>
. Если аргументы должны передаваться функции в виде отдельных аргументов, а не в виде массива, следует использовать вызов
Function.call().

Пример

<b>// Применяет метод Object.toStгing(), предлагаемый по умолчанию для объекта,</b>

<b>// переопределяющего его собственной версией метода. Обратите внимание </b>

<b>// на отсутствие аргументов.</b>

<b>Object.prototype.toString.apply(o);</b>

<b>// Вызывает метод Math.maxO, используемый для нахождения максимального элемента</b>

<b>// в массиве. Обратите внимание: в этом случае первый аргумент не имеет значения,</b>

<b>var data = [1,2,3,4,5,6,7,8];</b>

<b>Math.max.apply(null, data);</b>

См. также

Function. call()

Function.arguments[] (устарело)

аргументы, переданные функции

Синтаксис

<b>функция.arguments [і] </b>

<b>функция.arguments, length</b>

Описание

Свойство

<b>arguments</b>
объекта
<b>Function</b>
представляет собой массив аргументов, переданных функции. Этот массив определен только во время выполнения функции. Свойство
<b>arguments.length</b>
позволяет определить количество элементов в массиве.

Это свойство признано устаревшим, и его никогда не следует использовать в новых JavaScript-сценариях; вместо него рекомендуется использовать объект

<b>Arguments</b>
.

См. также

Arguments

Function.bind() (ECMAScript 5)

возвращает функцию, которая вызывается как метод

Синтаксис

<b>функция.bind (объект)</b>

<b>функция.bind (объект, аргументы...)</b>

Аргументы

объект Объект, к которому должна быть привязана функция.

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

Возвращаемое значение

Новая функция, которая будет вызывать эту функцию как метод объекта и передавать ей указанные аргументы.

Описание

Метод

<b>bind()</b>
возвращает новую функцию, которая будет вызывать эту функцию как метод объекта. В качестве аргументов эта функция будет получать аргументы, переданные методу
<b>bind(),</b>
за которыми будут следовать аргументы, переданные новой функции.

Пример

Допустим, что имеется функция f и в программе вызывается ее метод

<b>bind(),</b>
как показано ниже:

<b>var g = f.bind(o, 1, 2);</b>

В результате этого будет создана новая функция g, вызов

<b>g(3)</b>
которой эквивалентен следующему вызову:

<b>f.call(o, 1, 2, 3);</b>

См. также

Function.apply(), Function.call(), раздел 8.7.4

Function.call()

вызывает функцию как метод объекта

Синтаксис

<b>функция.call(этот_объект, аргументы...)</b>

Аргументы

этот_объект Объект, относительно которого должна быть вызвана функция. В теле функции аргумент этот_объект становится значением ключевого слова this. Если этот аргумент содержит значение null, используется глобальный объект.

аргументы... Любое количество аргументов, передаваемых функции.

Возвращаемое значение

Значение, возвращаемое вызовом функции.

Исключения

<b>ТуреЕrror</b>
Генерируется, если метод вызывается для объекта, не являющегося функцией.

Описание

<b>саll()</b>
вызывает указанную функцию, как если бы она была методом объекта, указанного в аргументе этот_объект, передавая ей любые аргументы, расположенные в списке аргументов после аргумента этот_объект. Вызов
<b>call()</b>
возвращает то, что возвращает вызываемая функция. В теле функции ключевое слово this ссылается на объект этот_объект или на глобальный объект, если аргумент этот_объект содержит значение null. Если аргументы для передачи в функцию требуется указать в виде массива, используйте метод
<b>Function.apply().</b>