js实例教程-js基础教程之函数柯里化carrying实例讲解

发布时间:2018-11-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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技巧 脚本宝典 欢迎评论哦!&nbsp;js技巧,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的js实例教程-js基础教程之函数柯里化carrying实例讲解全部内容,希望文章能够帮你解决js实例教程-js基础教程之函数柯里化carrying实例讲解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。