Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Function.prototype.arguments

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

Note:Thearguments property ofFunction objects is deprecated. The recommended way to access thearguments object is to refer to the variablearguments available within functions.

Thearguments accessor property ofFunction instances returns the arguments passed to this function. Forstrict, arrow, async, and generator functions, accessing thearguments property throws aTypeError.

Description

The value ofarguments is an array-like object corresponding to the arguments passed to a function.

In the case of recursion, i.e., if functionf appears several times on the call stack, the value off.arguments represents the arguments corresponding to the most recent invocation of the function.

The value of thearguments property is normallynull if there is no outstanding invocation of the function in progress (that is, the function has been called but has not yet returned).

Note that the only behavior specified by the ECMAScript specification is thatFunction.prototype has an initialarguments accessor that unconditionally throws aTypeError for anyget orset request (known as a "poison pill accessor"), and that implementations are not allowed to change this semantic for any function except non-strict plain functions. The actual behavior of thearguments property, if it's anything other than throwing an error, is implementation-defined. For example, Chrome defines it as an own data property, while Firefox and Safari extend the initial poison-pillFunction.prototype.arguments accessor to specially handlethis values that are non-strict functions.

js
(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 { … }

Examples

Using the arguments property

js
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

Specifications

Not part of any standard.

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp