js基础教程之函数柯里化carrying实例讲解
程序员文章站
2022-05-10 10:41:59
定义
函数柯里化就是创建已经设置单个参数或者多个参数的函数,函数变为接受一个参数,返回一个值
来个例子
function add(){
//...
定义
函数柯里化就是创建已经设置单个参数或者多个参数的函数,函数变为接受一个参数,返回一个值
来个例子
function add(){ // 将传进来的实参转换为数组arr var arr = array.prototype.slice.call(arguments); var mun = 0; for (let i = 0; i < arr.length; i++) { mun += arr[i]; } // 返回传进来的实参之和 return mun; } function carrying(fn){ // 获取要复用的参数,除去第一个参数并转化为数组 var argsout = array.prototype.slice.call(arguments,1); return function (){ // 取的自身的参数并转换为数组 var argsinner = array.prototype.slice.call(arguments); // 合并复用和自身的数组 var argstotle = argsinner.concat(argsout); // 调用传进来的fn函数,并将数组元素,利用apply的特点依次传入fn return fn.apply(null,argstotle); } } var a1 = carrying(add,4,6,7); // 4,6,7 为复用参数 // 这里的a1为carrying函数中return出来的匿名函数 console.log(a1()); //17 这里自身参数没有 console.log(a1(2,3,45,66)) //133 这里2,3,45,66为自身参数 var a2 = carrying(add,1); console.log(a2(4,2,3,4,66)) // 80
上一篇: ai绘制的图形怎么添加到符号面板?
下一篇: 分享几道js内存相关的练习题