js中的arguments对象

本文详细解析JavaScript中内置的arguments对象,包括其作为类似数组对象的特性,callee属性的作用,以及如何利用arguments.callee实现匿名函数的递归调用。通过实例演示,读者将学会在实际开发中灵活运用这一对象,提高代码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  其实,每个函数内部都有一个内建的arguments数组,它能返回函数所接受的所有参数。

例:

function mutiplyByTwo() {
    var i, ar = [];
    for(i = 0;i<3;i++) {
       ar[i] = arguments[i]*2;
    }
    return ar;
}
>> mutiplyByTwo(1,2,3);
=>[2,4,6]

 其实上面的例子看似arguments像是一个数组,其实它实际上是一个类似数组的对象。

而arguments还有一个值得关注的属性——callee属性。它引用的是当前被调用的函数对象。也就是说我们所建函数的返回值是 arguments.callee,那么这个函数在被调用时就会返回自身的引用。

>> function f() {return arguments.callee;}
>> f()
f()

 此外,我们还可以通过arguments.callee属性来实现匿名函数的递归调用;

例如:

(
    function (count) {
       if (count < 5) {
         alert (count);
         arguments.callee(++count);
       }
   }
)(1)

上例alert窗口会弹出四次,分别是1、2、3、4.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道门十三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值