Javascript 学习 -- arguments

来源:互联网 发布:centos arm版 编辑:程序博客网 时间:2024/06/08 16:36

arguments 对象中有一个callee方法, arguments.callee(arg) 可以反向调用

eg: 递归调用


function  factorial(num){

      if(num<=1) return 1;

      else return num* factorial(num-1);

}

// 求阶乘的例子, 递归调用的函数名和原函数名耦合在一起, 如果函数名更改,递归调用就会失败

var cf = factorial;

alert(cf(5));      //120

factorial=null;

alert(cf(5));// 出错了, 函数已经为null

 用callee 方法改进

function  factorial(num){

      if(num<=1) return 1;

      else return num*arguments.callee(num-1);

}

// 改进以后就不会出错了


0 0