我做了一些研究,我找到的最佳答案是: function overloading in js
前10个答案确实给了我一些提示和线索,但不是一般如何处理这些情况的方法。
让我们进一步提问:
如果我为其他人制作API,该怎么办?这应该给你以下问题的答案:
某些功能必须采用许多可选参数(以及一些非可选参数)。所以函数看起来像:
$homepage = file_get_contents('http://finance.google.com/finance/info?q=nasdaq:'.GET['qparams']);
$homepage = str_replace(array("//"," ","\r","\n"), "", $homepage);
return $homepage;
因此可以通过以下任何方式调用函数:
var f = function (unopt1, unopt2, op1, op2, op3) {
// code
}
等
显然,可选参数每个都可以有某些值,让我们说它们按特定顺序列出。和ofc。函数的行为取决于参数
您对此的建议方法是什么?多个很好,你可以指出某种方法的起伏是什么。
答案 0 :(得分:4)
使用spread运算符作为参数:
function f(...args){
switch(args.length){
case 1:
get()
case 2:
set()
default:
setWithOptions()
}
}
答案 1 :(得分:1)
使用“选项”对象或ES6 "rest parameters"
var f = function (unopt1, unopt2, opts) {
opts = opts || {};
// later... if( opts.yourOptionalArg )
}
var f = function (unopt1, unopt2, ...args) {
console.log(args)
var firstOptionalArg = args[0];
}