看看这段代码:
var args;
function foo(){
args = arguments;
}
foo();
console.log(args); // []
args.callee(); // foo
为什么我无法在控制台中看到任何参数对象的属性或方法但能够调用callee方法?
答案 0 :(得分:4)
您没有传递foo
任何参数。此外,callee
属性是“不可枚举的”。
答案 1 :(得分:3)
免责声明:这假设您使用的是Chrome或Firebug控制台,没有标准,因此自定义控制台可能会做一些时髦的事情。
因为您使用console.log
显示类似于数组的*对象与“普通”对象不同。如果要查看对象的属性,请使用console.dir
。
*与数组类似,对象必须具有length
属性和splice
函数,或许多其他利基条件。