zoukankan      html  css  js  c++  java
  • arguments对象

    arguments对象是所有(非箭头)函数中都可用的局部变量,可以使用arguments对象在函数中引用函数的参数。

    该对象可以获取函数的参数值和参数长度。

    如:arguments[0]、arguments[1]、arguments.length

    arguments对象不是一个数组,它是类数组,但除了length属性和索引之外没有array的其他属性,例如pop方法。但可以转换为一个真正的Array:

    法1:var args=Array.prototype.slice.call(arguments);

    法2:var args=[].slice.call(arguments);

    法3:const args=Array.from(arguments);

    法4:const args=[...arguments];

    例子

    遍历参数求和

    function add() {
                var sum=0;
                var len=arguments.length;
            for(var i=0;i<len;i++){
                sum+=arguments[i];
             }
            alert(sum);
        }
        add();//0
        add(1);//1
        add(1,2,3,4);//10

     arguments对象的callee属性返回正在被执行的Function对象,callee属性是arguments对象的一个成员,仅当相关函数正在执行时才可用。

    callee属性的初始值就是正在被执行的Function对象,这允许匿名的递归函数

    var sum = function (n) {
            if (1 == n) {
                return 1;
            } else {
                return n + arguments.callee(n - 1);
            }
        }
        alert(sum(6));

    arguments.caller指向调用当前函数的函数

  • 相关阅读:
    luoguP2939 [USACO09FEB]改造路Revamping Trails
    出题
    数字游戏
    统一异常处理
    数据验证
    拦截器
    数据绑定和表单标签库
    类型转换和格式化
    Spring MVC入门
    4springboot:日志(下)
  • 原文地址:https://www.cnblogs.com/xiaoan0705/p/10453052.html
Copyright © 2011-2022 走看看