js函数内的arguments对象
arguments里面的数组
js函数通过arguments对象里面的数组传参数,函数没有明确多少个参数
获取arguments里面的参数数组的方法:
function test(){ var argu = Array.prototype.slice.call(arguments); }
arguments里面的callee属性
指向执行函数本身。
函数有个caller属性,指向调用函数
function a(){ console.log(arguments.callee.caller.arguments[1]); } function b(){ a(); } b(1,2,3,4);
function factorial(num){ if(num <= 1){ return 1; } else{ return num * factorial(num - 1); } } //递归函数解耦合 function factorial(num){ if(num <= 1){ return 1; } else{ return num * arguments.callee(num - 1); } }
不过此方法在ES5的strict mode中被废弃了