javascript之arguments详解

本文详细介绍了JavaScript中arguments对象的功能与用法,包括如何获取实参个数、访问实参数组元素以及arguments对象与形参之间的相互作用。通过多个实例演示,帮助开发者更好地理解和运用arguments对象。

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

javascript中的arguments是一个长得很像数组的对象,然而它不是数组。arguments内容是函数运行时的实参列表,它收集了所有的实参。若想知道实参个数可以通过arguments.length得到。形参与对应的arguments单元是相互映射,相互影响的。其中arguments.callee代表当前运行的函数。下面看几个例子:

eg1:

(function(a,b,c){
    console.log(arguments[0]);//hello
})('hello');

eg2:

(function(a,b,c){
    console.log(arguments[3]);//haha
})('hello','world','!','haha');
/*
实参长度比形参长依然可以通过arguments得到在形参里面没有声明的实参
*/

eg3:

(function(a,b,c){
    arguments[0] = 'world';
    console.log(arguments[0]);//world
})('hello');
/*
形参与对应的arguments单元是相互映射,相互影响的
*/
eg4:

(function(a,b,c){
    console.log(arguments.callee);
    /*
    function (a,b,c){
        console.log(arguments.callee);//
    } 
    */
})('hello');
/*
arguments.callee代表当前函数
*/

function t(n){
    if(n<=1){
        return 1;
    }else{
        return n + t(n-1);
    }
}
alert(t(10));//55

alert((function(n){
    if(n<=1){
        return 1;
    }else{
        return n + arguments.callee(n-1);
    }
})(10));
/*
要在匿名函数上完成递归就需要arguments.callee属性
*/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值