情况如下:
功能:
const fun = (a="keep this", b="change this")=>{return a + b};
如何保留第一个默认参数并覆盖第二个默认参数?我有几个函数使用许多以不同方式调用的默认参数,因此仅将b
参数移动到第一个参数将不起作用。为了简单起见,假设a
的覆盖频率几乎与b
相同。
我找到了有关可选参数的答案,但没有一个显示如何在保留该参数之前的默认值的情况下指定参数。
我尝试以类似于python的方式调用它,但未成功:
fun(b="changed");
答案 0 :(得分:2)
这可以通过提供在未定义参数的任何情况下函数所看到的内容来实现:
((a="keep this", b="change this")=>{return a + b})(undefined, "changed");
仅将参数位置指定为undefined将导致使用默认值。它不像Python那样简单直接,但是它可以在您知道要跳过的参数数量的任何情况下使用。
这是一个可以在多个参数上使用的示例,在需要跳过许多参数的情况下很有用:
((a="keep", b="this", c="change this")=>{
return a+b+c
})(...(new Array(2).fill(undefined)), "changed");