引题:
最近的笔试题中出现的多个()调用,有的是对参数做判断有的是次数判断。所以总结一下,并回顾一下JavaScript中的callee、caller、arguments这些属性。
1. arguments
- 是函数调用时,创建的一个类似的数组但又不是数组的对象
- 并且它存储的是实际传递给函数的参数,并不局限于函数声明的参数列表
打印该结果可见:
可以看到原型为对象,且arguments 对象是 iterable 的(拥有 Symbol.iterator 属性),所以可以用 for-of 来遍历了。
2. caller
- 保存着调用当前函数的函数,可用functionName.caller调用
- 对于函数来说,caller 属性只有在函数执行时才有定义。 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null 。
function call