JavaScript函数 - arguments应用

  • 原创
  • 发布时间: 1周前
  • 收藏数: 0 / 点赞数: 0 / 阅读数: 6
由于JavaScript函数允许接收任意个参数,所以JavaScript提供了一个关键字arguments

JavaScript提供了一个关键字arguments,用于在函数中接收当前函数调用者传入的所有参数

arguments关键字只在函数内部起作用

arguments是一个类似数组的对象,下标从0开始,分别代表传递的参数值

function foo(x){
    console.log(x)
    for(var i = 0; i <= arguments.length; i++) {
        console.log(arguments[i]);
    }
}

foo('a', 'b', 'c');
// a
// a
// b
// c

利用arguments,我们可以获取调用者传入的所有参数

也就是说,即使函数不定义任何参数,还是可以拿到参数的值

重载

在JavaScript中没有函数"重载"的概念,函数名重复会覆盖之前定义的同名函数

"函数重载"在Java里边存在,可以存在多个同名函数,但是参数个数或数据类型不一样

JavaScript是一门松散类型的程序语言,本身是没有"重载"的

但是利用arguments,我们可以模拟函数的重载

function foo() {
    if (arguments.length === 2) {
        // ...
    } else if (arguments.length === 1) {
        // ...
    } else {
        // ...
    }
}

通过判断传入参数的个数,进行不同的逻辑处理,就实现了模拟函数"重载"

通过判断传入参数的个数,也可以实现可选参数自定义

// bar(a [, b], c)
// 定义一个bar函数,接收2~3个参数,b是可选,如果只传2个参数,b默认为null
function bar(a, b, c) {
    if (arguments.length === 2) {
        c = b;
        b = null;
    }
    // 其他逻辑...
}
评论