关于arguments

171 阅读1分钟
  • 形参:函数定义的参数

  • 实参:函数调用时定义的参数

  • 参数是从左到右执行匹配,如果实参个数少于形参,后面的参数对应赋值undefined

  • 如果实参的个数多于形参个数,可以通过arguments访问

  • 函数对象的length属性就是函数实参的个数

  1. arguments 对象能够模拟重载。JavaScript中每个函数都有一个arguments对象实例arguments,引用的是函数的实参,可以用数组下标的方式“[]”引用arguments的元素

  2. arguments.length为函数实参个数

  3. arguments.callee指代当前正在执行的函数,可以引用匿名函数自身

  4. arguments对象并不是一个数组(类数组),但访问单个参数的方式与访问数组元素的方式相同

例:

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

var fn = function(n) {
    if (n < 2) {
        return 1;
    } else {
        return n * arguments.callee(n-1);
    }
}
let y = fn(5);
console.log(y); //120 =>相当于5*4*3*2*1