代码:
在控制台打印了三个对象,分别是tom,数组对象,对象,把我们所传的参数都打印出来了,虽没有给fun方法定义形参,但是通过arguments可以拿到传进来的所有参数。
arguments还有一个callee的属性,它是什么呢?大多数人知道arguments可以拿到所有的参数列表,却很少有知道callee是做什么的,callee是代表的fun本身,arguments.callee = fun ,通过以下的例子可以说明:
在console里边加了arguments.callee = fun ,控制台打印出来为true,说明内存地址是一样的。
arguments是一个对象,可以用Array.isArray(arguments)来判断它是一个数组还是对象。
Symbol,它是独一无二的,在ES6里边是一个生成迭代器的函数,在Arguments里边也同样适用。
面试中只要能说他是一个对象,不是数组,可以用它来获取参数列表,arguments.callee 代表的是它自己就已经完全OK了。