浅谈arguments

本文介绍了JavaScript中的Arguments对象,解释了其特性和用途。Arguments对象是一个类数组对象,用于引用传递给函数的所有参数,即使参数数量不确定也能灵活处理。文章还探讨了如何利用Arguments对象的特性实现灵活的函数调用。

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

arguments 是一个对应于传递给函数的参数的类数组对象

arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。

 arguments对象不是一个 Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array属性。 例如,它没有 pop 方法。但是它可以被转换为一个真正的Array

 

参数的个数不确定的情况下:

    function arr() {
      console.log(arguments);
    }
    arr(1, 2, 3, 4)
    arr(1, 2, 3)
    var a=[1,2,3]
    arr(a)

在js中 不需要明确指出参数名,就能访问它们,例如:

function test() {
        var s = "";
        for (var i = 0; i < arguments.length; i++) {
            alert(arguments[i]);
            s += arguments[i] + ",";
        }
        return s;
    }
    test("name", "age")

输出结果:

name,age

我们知道每一个对象都有自己的属性,arguments对象也不例外,首先arguments的访问犹如Array对象一样,
用0到arguments.length-1来枚举每一个元素。下面我们来看看callee属性,返回正被执行的Function 对象,
也就是所指定的 Function 对象的正文。callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。
callee 属性的初始值就是正被执行的 Function 对象,这允许匿名的递归函数。

var sum = function (n) {
        if (1 == n) {
            return 1;
        } else {
            return n + arguments.callee(n - 1);
        }
    }
 console.log(sum(6));//21  6+5+4+3+2+1

 通俗一点就是,arguments此对象大多用来针对同个方法多处调用并且传递参数个数不一样时进行使用。根据arguments的索引来判断执行的方法。

仅供参考,欢迎指出问题所在。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浏览器翻译官~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值