1、函数的参数arguments 对象
-- arguments 表示函数的实际参数(与形参无关)
// js中 函数的参数:形参、实参
function test(a,b,c,d){
// 函数名.length 等价于 arguments.callee.length,因为arguments.callee代表函数本身, 程序开发中建议使用后者
console.log(test.length); // 4 ,函数形式参数的数量
// 函数的实际参数,内部就是用一个数组去接收函数的实际参数
// arguments 对象 可以访问函数的实际参数
// arguments 对象 只能在函数的内部访问和使用
console.log(arguments.length); // 获取 函数 的实参 的数量 test(10,20) 输出为:2
console.log(arguments[0]); // 获取第一个 实参 的值 test(10,20) 输出为:10
console.log(arguments[1]); // 获取第二个 实参 的值 test(10,20) 输出为:20
}
test(10,20);
2、callee函数(回调函数属性)
-- arguments 对象的秘密属性,callee属性
--这个属性比较奇怪,它能返回arguments对象所属的函数的引用,这相当于在自己的内部调用自己
-- arguments 对象用得最多的还是做递归操作
function fact(num){
if(num <= 1){
return 1;
}else{
return num * arguments.callee(num-1);
}
}
console.log(fact(5)); // 120