gpt4 book ai didi

javascript - 如何拦截或编辑柯里化(Currying)函数

转载 作者:行者123 更新时间:2023-12-03 02:03:55 24 4
gpt4 key购买 nike

我是 js 和函数式编程的新手

我的问题如下

const orgFunc = (str, str2) =>{
return str + ' ' + str2;
}

const curryFunc = (str) =>
{
return orgFunc(str,'curried');
}

const interceptFunc = (fn) =>
{
return fn;
}

1 console.log("orgFunc",orgFunc('func','org'));
>func org
2 console.log("curryFunc", curryFunc('func'));
>func curried
3 console.log("interceptFunc", interceptFunc(curryFunc)('func'));
>func curried

我想将 3 的结果“func curried”更改为“func拦截”将“柯里化(Currying)”替换为“拦截”

但是在interceptFunc函数中,

const interceptFunc = (fn) =>
{
return fn
}

fn 是函数,所以我不能使用 fn.replace("curried","intercepted")

有什么办法吗?

最佳答案

您可以通过修改 interceptFunc 函数来实现此目的。

您的 interceptFunc 除了返回另一个函数之外没有执行任何操作。

检查下面的代码片段,其中我们返回另一个实际上充当拦截器的函数。

const orgFunc = (str, str2) =>{
return str + ' ' + str2;
}

const curryFunc = (str) =>
{
return orgFunc(str,'curried');
}

const interceptFunc = (fn) =>
{
return function(someInput){
return fn(someInput).replace('curried', 'intercepted');
}
}

console.log(interceptFunc(curryFunc)("func"));

关于javascript - 如何拦截或编辑柯里化(Currying)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49897664/

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