arguments
什么是arguments(arguments是数组还是对象)
arguments存储着函数的实参。,拥有着length属性,是个类数组(对象)。
运用
检查函数实参和形参个数
js
function fn(a,b,c) {
if(fn.length != arguments.length) throw new Error("auguments length Error")
}
实现匿名函数递归
arguments中的callee属性指向当前函数,可以利用这个特性实现匿名函数递归
js
function fn(oldTime) (
let time = 10
return function(){
if(Date.now() - oldTime > time) {
return arguments.callee(oldTime)
}
}
)
模拟函数重载
js
function doAdd() {
if(arguments.length == 1) {
console.log(arguments[0] + 5);
} else if(arguments.length == 2) {
console.log(arguments[0] + arguments[1]);
}
}
doAdd(10); // 15
doAdd(10, 20); // 30