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