为什么arguments对象没有在控制台中显示它的方法

时间:2012-08-09 14:44:53

标签: javascript

看看这段代码:

var args;
function foo(){
  args = arguments;
}

foo();

console.log(args); // []
args.callee(); // foo

为什么我无法在控制台中看到任何参数对象的属性或方法但能够调用callee方法?

2 个答案:

答案 0 :(得分:4)

您没有传递foo任何参数。此外,callee属性是“不可枚举的”。

答案 1 :(得分:3)

免责声明:这假设您使用的是Chrome或Firebug控制台,没有标准,因此自定义控制台可能会做一些时髦的事情。

因为您使用console.log显示类似于数组的*对象与“普通”对象不同。如果要查看对象的属性,请使用console.dir

*与数组类似,对象必须具有length属性和splice函数,或许多其他利基条件。