Function.prototype.arguments
Baseline Ограниченная доступность
Эта функция не является Baseline, так как она не работает в некоторых наиболее широко используемых браузерах.
Устарело: Эта функция больше не рекомендуется. Несмотря на то, что некоторые браузеры могут по-прежнему поддерживать ее, она уже может быть удалена из соответствующих веб-стандартов, находится в процессе удаления или оставлена только для целей совместимости. Избегайте ее использования и, по возможности, обновите существующий код; см. таблицу совместимости внизу этой страницы, чтобы помочь вам принять решение. Имейте в виду, что эта функция может перестать работать в любое время.
Нестандартно: Эта функция нестандартна и не находится на пути стандартизации. Не используйте ее на производственных сайтах, ориентированных на Интернет: она не будет работать для каждого пользователя. Также могут быть большие несовместимости между реализациями, и поведение может измениться в будущем.
Нестандартно: Эта функция нестандартна и не находится на пути стандартизации. Не используйте ее на производственных сайтах, ориентированных на Интернет: она не будет работать для каждого пользователя. Также могут быть большие несовместимости между реализациями, и поведение может измениться в будущем.
Примечание: Свойство arguments объектов Function устарело. Рекомендуемый способ доступа к объекту arguments — обратиться к переменной arguments, доступной внутри функций.
Аксессорное свойство arguments экземпляров Function возвращает аргументы, переданные этой функции. Для строгих, стрелочных, асинхронных и генераторных функций доступ к свойству arguments вызывает TypeError.
Описание
Значение arguments — это объект, похожий на массив, соответствующий аргументам, переданным функции.
В случае рекурсии, то есть если функция f несколько раз появляется в стеке вызовов, значение f.arguments представляет аргументы, соответствующие самому последнему вызову функции.
Значение свойства arguments обычно равно null, если нет активного вызова функции (то есть функция была вызвана, но еще не вернула значение).
Обратите внимание, что единственное поведение, указанное в спецификации ECMAScript, заключается в том, что Function.prototype имеет начальный аксессор arguments, который безусловно вызывает TypeError для любого запроса get или set (известный как "poison pill accessor"), и что реализации не разрешено изменять эту семантику для любой функции, кроме обычных нестрогих функций. Фактическое поведение свойства arguments, если оно отличается от вызова ошибки, определяется реализацией. Например, Chrome определяет его как собственное свойство данных, в то время как Firefox и Safari расширяют начальный аксессор "poison-pill" Function.prototype.arguments для специальной обработки значений this, которые являются нестрогими функциями.
(function f() {
if (Object.hasOwn(f, "arguments")) {
console.log(
"arguments is an own property with descriptor",
Object.getOwnPropertyDescriptor(f, "arguments"),
);
} else {
console.log(
"f doesn't have an own property named arguments. Trying to get f.[[Prototype]].arguments",
);
console.log(
Object.getOwnPropertyDescriptor(
Object.getPrototypeOf(f),
"arguments",
).get.call(f),
);
}
})();
// In Chrome:
// arguments is an own property with descriptor {value: Arguments(0), writable: false, enumerable: false, configurable: false}
// In Firefox:
// f doesn't have an own property named arguments. Trying to get f.[[Prototype]].arguments
// Arguments { … }
Примеры
Использование свойства arguments
function f(n) {
g(n - 1);
}
function g(n) {
console.log(`before: ${g.arguments[0]}`);
if (n > 0) {
f(n);
}
console.log(`after: ${g.arguments[0]}`);
}
f(2);
console.log(`returned: ${g.arguments}`);
// Logs:
// before: 1
// before: 0
// after: 0
// after: 1
// returned: null
Спецификации
Не является частью какого-либо стандарта.
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
arguments |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arguments