简洁中文网站模板wordpress静态生成页面
news/
2025/9/24 2:00:29/
文章来源:
简洁中文网站模板,wordpress静态生成页面,seo网站建设步骤,网店营销技巧讨论文章目录 柯里化函数是什么逐步理解柯里化函数 柯里化函数是什么
柯里化#xff08;Currying#xff09;函数#xff0c;又称部分求值#xff0c;是一种函数转换技术。这种技术将一个接受多个参数的函数转换为一系列接受单一参数的函数。具体来说#xff0c;一个柯里化的… 文章目录 柯里化函数是什么逐步理解柯里化函数 柯里化函数是什么
柯里化Currying函数又称部分求值是一种函数转换技术。这种技术将一个接受多个参数的函数转换为一系列接受单一参数的函数。具体来说一个柯里化的函数首先会接收一些参数但并不会立即求值而是返回另一个函数。之前传入的参数在函数形成的闭包中被保存起来直到所有需要的参数都被传入函数才会被真正求值。
逐步理解柯里化函数
本质上柯里化函数是返回了一个函数体进而通过该函数体接收参数并进行求值计算。 以柯里化函数调用为例进行反推
add(1, 2)(3, 4)这个结构初看可能不太容易理解但我们可以从函数的基础用法开始联想。
function demo() { console.log(demo);
} demo();在这个例子中demo 是一个函数它被直接调用。如果我们想要将函数体作为返回值立即执行函数可以这样做
(function demo() { console.log(demo);
})();
当我们想要给这个函数传递参数时可以这样做
(function demo(a, b) { console.log(demo, a b);
})(3, 4);这段代码执行后会立即执行该函数并传入值 3 和 4控制台会打印出 demo 7。 接下来如果我们想要调用另一个函数并返回 demo 函数以便可以再次调用 demo 函数可以这样做
function demo(a, b) { console.log(demo, a b);
} function sum(a, b) { return demo; // 注意这里只是返回了函数并没有执行
} let test sum(1, 2); // 此时 test 接收的值为 demo 函数
test(3, 4); // 触发 test 即为触发 demo 函数控制台输出 demo 7如果将test简化去掉可以得到
function demo(a,b){console.log(demo,ab)
}
function sum(a,b){return demo //此时函数未执行
}
sum(1,2)(3,4)此时sum函数的执行体与柯里化函数执行体已经高度相似了最后整合一下接收值
function sum(a,b){return (c,d){console.log(demo,a,b,c,d)}
}
sum(1,2)(3,4)此时控制台输出demo 1 2 3 4
因为ab是外层函数输入的c,d是返回函数接收的同时返回函数在外层函数环境内可以取到a,b值 最后我们处理一下求值可得到
function sum(a,b){return (c,d){return abcd}
}
sum(1,2)(3,4) //10function sum2(a,b){return (c){return abcd}
}
sum2(1,2)(3) //6一个基础版本柯里化函数完成了 简图方便理解一下
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914544.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!