Генерируется, если метод вызывается для объекта, не являющегося функцией, или с аргументом аргументы, не являющимся массивом или объектом Arguments.
Описание
Метод
apply
вызывает указанную функцию, как если бы она была методом объекта, заданного аргументом этот_объект, передавая ей аргументы, которые содержатся в массиве аргументы.
Он возвращает значение, возвращаемое функцией. В теле функции ключевое слово this ссылается на объект этот_объект.
Аргумент аргументы должен быть массивом или объектом
Arguments
. Если аргументы должны передаваться функции в виде отдельных аргументов, а не в виде массива, следует использовать вызов
Function.call.
Пример
// Применяет метод Object.toStгing, предлагаемый по умолчанию для объекта,
// переопределяющего его собственной версией метода. Обратите внимание
// на отсутствие аргументов.
Object.prototype.toString.apply(o);
// Вызывает метод Math.maxO, используемый для нахождения максимального элемента
// в массиве. Обратите внимание: в этом случае первый аргумент не имеет значения,
var data = [1,2,3,4,5,6,7,8];
Math.max.apply(null, data);
См. также
Function. call
Function.arguments[] (устарело)
аргументы, переданные функции
Синтаксис
функция.arguments [і]
функция.arguments, length
Описание
Свойство
arguments
объекта
Function
представляет собой массив аргументов, переданных функции. Этот массив определен только во время выполнения функции. Свойство
arguments.length
позволяет определить количество элементов в массиве.
Это свойство признано устаревшим, и его никогда не следует использовать в новых JavaScript-сценариях; вместо него рекомендуется использовать объект
Arguments
.
См. также
Arguments
Function.bind (ECMAScript 5)
возвращает функцию, которая вызывается как метод
Синтаксис
функция.bind (объект)
функция.bind (объект, аргументы...)
Аргументы
объект Объект, к которому должна быть привязана функция.
аргументы... Ноль или более значение аргументов, которые также должны быть связаны с функцией.
Возвращаемое значение
Новая
функция, которая будет вызывать эту функцию как метод объекта и передавать ей указанные аргументы.
Описание
Метод
bind
возвращает новую функцию, которая будет вызывать эту функцию как метод объекта. В качестве аргументов эта функция будет получать аргументы, переданные методу
bind,
за которыми будут следовать аргументы, переданные новой функции.
Пример
Допустим, что имеется функция f и в программе вызывается ее метод
bind,
как показано ниже:
var g = f.bind(o, 1, 2);
В результате этого будет создана новая функция g, вызов
g(3)
которой эквивалентен следующему вызову:
f.call(o, 1, 2, 3);
См. также
Function.apply, Function.call, раздел 8.7.4
Function.call
вызывает функцию как метод объекта
Синтаксис
функция.call(этот_объект, аргументы...)
Аргументы
этот_объект Объект, относительно которого должна быть вызвана функция. В теле функции аргумент этот_объект становится значением ключевого слова this. Если этот аргумент содержит значение null, используется глобальный объект.
аргументы... Любое количество аргументов, передаваемых функции.
Возвращаемое значение
Значение, возвращаемое вызовом функции.
Исключения
ТуреЕrror
Генерируется, если метод вызывается для объекта, не являющегося функцией.
Описание
саll
вызывает указанную функцию, как если бы она была методом объекта, указанного в аргументе этот_объект, передавая ей любые аргументы, расположенные в списке аргументов после аргумента этот_объект. Вызов
call
возвращает то, что возвращает вызываемая функция. В теле функции ключевое слово this ссылается на объект этот_объект или на глобальный объект, если аргумент этот_объект содержит значение null. Если аргументы для передачи в функцию требуется указать в виде массива, используйте метод
Function.apply.
Пример
// Вызывает метод Object.toString, по умолчанию предлагаемый для объекта,
// переопределяющего его собственной версией метода. Обратите внимание
// на отсутствие аргументов.
Object.рrototype.toString.call(о);
См. также
Function. apply
Function.caller (устарело; не определено в строгом режиме)