gpt4 book ai didi

javascript - 检查和修改函数默认参数值

转载 作者:行者123 更新时间:2023-11-30 13:45:56 26 4
gpt4 key购买 nike

我有以下功能:

const setDefaults = (func, defArgs) => {
//should return the func with default arguments modified
// so that in case that an argument is not passed to the function,
// but it is provided in default Argument, the default argumnt is used
}

func:是一个函数,需要从 defArgs

分配默认参数

defArgs:默认参数集

例如:

const greet = name => `Hi, ${name}!`

setDefaults(greet, {name: 'friend'})

greet(); // Hi, friend!

到目前为止,我已经开始深入研究 func.toString() 并考虑将原始函数修改为字符串,然后评估输出,但这似乎有点冗长,所以我想知道是否有任何更好的方法可以做到这一点。

最佳答案

greet(); // Hi, friend!

您不能修改原始函数,因为它是const。如果你想做这样的事情:

const greet = name => `Hi, ${name}!`
const parasiticGreet = setDefaults(greet, {name: 'friend'})
parasiticGreet(); // Hi, friend!

这是可能的,但我会像这样简化它:

const greet = name => `Hi, ${name}!`
const setDefaults = (func, defArgs = []) => (...args) => func(...defArgs.map((x, i) => args[i] === undefined ? x : args[i]));
const parasiticGreet = setDefaults(greet, ['friend']);
console.log(parasiticGreet()); // Hi, friend!

关于javascript - 检查和修改函数默认参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com