arguments
- 每个函数都会有Arguments对象实例arguments,它包含传入函数的实参。
- arguments类型是对象,但是也是个类数组。
- 它可以使用数组的length来看参数的数量,但是不能使用数组的方法,如pop等。
- 将它转换为数组:
- Array.prototype.slice.call(arguments, 0);
- [].prototype.slice.call(arguments, 0);
- Array.from(arguments)
- 常见的类数组主要是arguments和获取的DOM元素(datalist)。
- 使用arguments可以模拟实现函数的重载。
callee
callee是arguments的一个属性,表示正在执行的函数。可以使用它进行递归操作。
caller
caller是函数的一个属性,代表调用该函数的函数。若没有则为null。