可选参数的函数还可以这样设计!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可选参数的函数还可以这样设计!相关的知识,希望对你有一定的参考价值。

// foo(a[, b], c)
// 接收2~3个参数,b是可选参数,如果只传2个参数,b默认为null:
function foo(a, b, c) {
    if (arguments.length === 2) {
        // 实际拿到的参数是a和b,c为undefined
        c = b; // 把b赋给c
        b = null; // b变为默认值
    }
    // ...
}

php也可以用这个思路来设计哈,不过php没有arguments这样的关键字,可以通过func_num_args方法来获取传入函数内部的参数个数。

 

function sum(...rest) {
  var i=0;
  rest.forEach(function(item){
    i+=item;
  })
  return i;
}

还有这样神奇的写法!

以上是关于可选参数的函数还可以这样设计!的主要内容,如果未能解决你的问题,请参考以下文章

可选函数参数:使用默认参数(NULL)还是重载函数?

C#4.0中的更改——命名参数和可选参数

C#基础 可选参数调用params无参静态构造函数

python第五周,函数的定义与使用,代码复用与函数递归

None还可以是函数定义可选参数的一个默认值,设置成默认值时实参在调用该函数时可以不输入与None绑定的元素

第9章 参数