js function中的arguments属性
最近在研究 js 的的 function 里的arguments属性。
arguments是function里面的特殊的对象,包含了传入函数内的所有参数。这个特殊的对象里有一个cellee的属性,用于指向拥有这个arguments对象的函数。
一下是一个递归的例子:
function recursion(num) {
    if (num < 1) {
        return 1;
    } else {
        return num * recursion(num - 1);
    }
}
这是常规的写法,但是如果我把函数名(recursion)换了,里面的名字也要换一次。但是我们可以用arguments对象的cellee属性重新指向拥有arguments的函数:
function recursion(num) {
    if (num < 1) {
        return 1;
    } else {
        return num * arguments.callee(num - 1);
    }
}
这就是今天记录的内容。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号