Spec-Zone.ru › JavaScript

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

См. также

  • arguments
  • Функции

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API