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

why arguments object is not showing it's method in console

本文关键字:显示 方法 控制台 参数 对象 为什么      更新时间:2023-09-26

看看这段代码:

var args;
function foo(){
  args = arguments;
}
foo();
console.log(args); // []
args.callee(); // foo

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

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

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

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

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