Function.arguments

已废弃
该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

function.arguments 属性代表传入函数的实参,它是一个类数组对象。

描述

function.arguments 已经被废弃很多年了,我打赌你从来就不知道它的存在(那更好)。现在推荐的做法是使用函数内部可用的 arguments 对象来访问函数的实参。

在函数递归调用的时候(在某一刻同一个函数运行了多次,也就是有多套实参),那么 arguments 属性的值是最近一次该函数调用时传入的实参,下面的示例有演示。

如果函数不在执行期间,那么该函数的 arguments 属性的值是 null

示例

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('函数退出后的 arguments 属性值:' + g.arguments);
// 输出:
// before: 1
// before: 0
// after: 0
// after: 1
// 函数退出后的 arguments 属性值:null

规范

规范名称 规范状态 备注
ECMAScript 1st Edition (ECMA-262) Standard arguments 属性首次实现于 JavaScript 1.0,首次添加进规范是在 ES1,在 ES3 中被删除。
ECMAScript 5.1 (ECMA-262)
arguments object
Standard arguments
ECMAScript 2015 (6th Edition, ECMA-262)
arguments object
Standard arguments

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

相关链接

文档标签和贡献者