javascript Arguments对象之length、callee属性

1、length属性,我们可以利用Arguments对象的length属性来获取实际传递进的参数有几个。

function a(x, y, z) {

        //arguments.callee指向函数a(),arguments.callee.length==a.length;

        alert(arguments.callee.length); 

        //输出5

        alert(arguments.length);

        if (arguments.callee.length != arguments.length) {

            //判断形参与实参个数是否相等,不相等则不执行

            return false;

        }

        alert("执行");

    };

    a(1,2,3,4,5);

2、callee属性,Arguments对象的callee属性,指向当前调用的函数,可以利用它来进行函数自身的重载。在闭包中应用的也比较广泛。

var i = 0;

    function b(num) {

        if (num < 10) {

            num++;

            i++;

            //如果有参数,callee也要把参数带上;

            arguments.callee(num);

        } else {

           //输出2次

           alert("调用了"+i+"次callee!");

        }

    }

    b(8);

 Arguments.callee在闭包中的应用,它提供了一种递归调调用的功能。

//用arguments.callee计算10的阶乘,例如: 1×2×3×4×5×6×7....

    function c(x) {

        return x > 1 ? x * arguments.callee(x - 1) : 1

    } (10);

    //输出6

    alert(c(3));

    //输出3628800

    alert(c(10));


转载于:https://my.oschina.net/adamboy/blog/293257

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值