Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跳过参数以保留JavaScript中的默认值_Javascript_Default Parameters - Fatal编程技术网

跳过参数以保留JavaScript中的默认值

跳过参数以保留JavaScript中的默认值,javascript,default-parameters,Javascript,Default Parameters,情况如下: 功能: const fun = (a="keep this", b="change this")=>{return a + b}; 如何保留第一个默认参数并覆盖第二个参数?我有几个函数使用许多以不同方式调用的默认参数,因此仅将b参数移动到第一个参数将不起作用。为了简单起见,a被覆盖的频率几乎与b相同 我找到了关于可选参数的答案,但没有一个告诉我如何指定参数,同时保留所述参数之前的默认值 我尝试用类似于python的方式调用它,但没有成功: fun(b="changed");

情况如下:

功能:

const fun = (a="keep this", b="change this")=>{return a + b};
如何保留第一个默认参数并覆盖第二个参数?我有几个函数使用许多以不同方式调用的默认参数,因此仅将
b
参数移动到第一个参数将不起作用。为了简单起见,
a
被覆盖的频率几乎与
b
相同

我找到了关于可选参数的答案,但没有一个告诉我如何指定参数,同时保留所述参数之前的默认值

我尝试用类似于python的方式调用它,但没有成功:

fun(b="changed");

这可以通过提供函数在未定义参数的任何情况下看到的内容来实现:

((a="keep this", b="change this")=>{return a + b})(undefined, "changed");
仅将paramater位置指定为未定义将导致使用默认值。它不像Python那样简单直接,但是它可以在您知道要跳过的参数数量的任何情况下工作

以下示例可用于多个参数,并且在需要跳过多个参数的情况下非常有用:

((a="keep", b="this", c="change this")=>{
   return a+b+c
   })(...(new Array(2).fill(undefined)), "changed");

这可以通过提供函数在未定义参数的任何情况下看到的内容来实现:

((a="keep this", b="change this")=>{return a + b})(undefined, "changed");
仅将paramater位置指定为未定义将导致使用默认值。它不像Python那样简单直接,但是它可以在您知道要跳过的参数数量的任何情况下工作

以下示例可用于多个参数,并且在需要跳过多个参数的情况下非常有用:

((a="keep", b="this", c="change this")=>{
   return a+b+c
   })(...(new Array(2).fill(undefined)), "changed");

当您不向a函数传递任何参数时,实际上是在传递未定义的参数,所以您可以只对第一个参数进行传递

const f=(a=“a”,b=“b”)=>console.log(“>”,a,b);

f(undefined,“new b”)/>一个新的b
当您没有向a函数传递任何参数时,您实际上是在传递undefined,因此您可以只对第一个参数执行此操作

const f=(a=“a”,b=“b”)=>console.log(“>”,a,b);

f(未定义,“新b”)/>一个新的b
无需填充即可创建一个新的稀疏数组

const fn=(a=“保持”,b=“这个”,c=“改变这个”)=>a+b+c;

log(fn(…新数组(2),“已更改”)无需填充即可创建新的稀疏数组

const fn=(a=“保持”,b=“这个”,c=“改变这个”)=>a+b+c;
log(fn(…新数组(2),“已更改”)