脚本宝典收集整理的这篇文章主要介绍了js实例教程-js基础教程之函数柯里化carrying实例讲解,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。
函数柯里化就是创建已经设置单个参数或者多个参数的函数,函数变为接受一个参数,返回一个值
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
函数柯里化就是创建已经设置单个参数或者多个参数的函数,函数变为接受一个参数,返回一个值
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
觉得可用,就经常来吧!Javascript技巧 脚本宝典 欢迎评论哦! js技巧,巧夺天工,精雕玉琢。小宝典献丑了!
以上是脚本宝典为你收集整理的js实例教程-js基础教程之函数柯里化carrying实例讲解全部内容,希望文章能够帮你解决js实例教程-js基础教程之函数柯里化carrying实例讲解所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。