javascript内置对象之arguments

背景:

         由于最近需要前端的技术,无意间用到了arguments对象,就在学习了一番

学习之后:

1、arguments是内置对象之一,说白了其实就是函数的一个内置属性,表示的是参数

例如:

             function getUrlArgs(a,b,c){

                    alert(arguments.length);   // 此处就是表示的getUrlArgs的参数的个数    你会感觉他弹出的是几呢?

              }

2、我认为很多人会跟我一样,认为弹出3(是滴,我之前也是这么认为的),恭喜你!!你错了

      这里面弹出的是0,为什么??

      因为arguments对象的长度是由实参决定的而不是形参决定的!!!

              JavaScript中形参在严格意义上来讲他只是为了方便我们在函数中操作变量提供方便(说白了就是为我们定义了几个变量),

      实际上实参已经存储在arguments对象中了。所以他会弹出0

3、arguments中还提供了一个非常有用的属性:callee

       arguments.callee   返回的是arguments所在的当前函数的引用,一般递归操作的时候会用他来代替函数名

     例子:

    calleeDemo(1,2);   // 实参和形参相等

    calleeDemo(1);      // 实参和形参不等

    function calleeDemo(a, b) {
        alert(arguments.callee.toString());      // 弹出什么东东呢??自己验证吧,会更好的理解
        if (arguments.length == arguments.callee.length) {
            window.alert("正确理解形和实参是有必要的!");
            return;
        } else {
            alert("实参长度:" + arguments.length);
            alert("形参长度: " + arguments.callee.length);
        }
    }

更多编程内容,请扫码关注《coder练习生》,如果觉得有用,也可赠送作者一杯咖啡

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

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

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

打赏作者

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

抵扣说明:

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

余额充值