当前位置: 首页 > wzjs >正文

网上做服装批发网站网络服务提供者

网上做服装批发网站,网络服务提供者,网站开发服务器,十大免费erp软件13、手写函数柯里化 它将一个接受多个参数的函数转换为一系列只接受一个参数的函数 举个例子: function add(a, b) {return a b;}console.log(add(2, 3)); // 输出:5// 柯里化后:function curriedAdd(a) {return function (b) {return a …

13、手写函数柯里化

它将一个接受多个参数的函数转换为一系列只接受一个参数的函数

举个例子:

 function add(a, b) {return a + b;}console.log(add(2, 3)); // 输出:5// 柯里化后:function curriedAdd(a) {return function (b) {return a + b;};}const add2 = curriedAdd(2); // 固定第一个参数为 2console.log(add2(3)); // 输出:

柯里化

  • 传入:一个函数,但是有多个参数
  • 目的:就是把多个参数进行链式调用
        let currying = function (func) {// 参数// let args = [];//这样的话,每次调用currying,都会指向第一次的args// 返回函数进行链式调用,,也需要传递参数return function curried(...args) {// 每次链式调用都应该有自己的参数收集,可以这样递归实现:return function result(...res) {// 当res的长度为0(不调用参数的时候,就代表要执行函数)if (res.length === 0) {return func(...args)} else {// 当在执行函数之前,就要保存参数,进行链式调用args.push(...res);return result;}}}}

进行改进:

        // 柯里化函数:传入一个函数let currying = function (func) {// 开始递归返回函数// ...args可以收集函数return function curried(...args) {// 如果参数数量足够,执行原函数// 如果收集的函数参数大于等于了原函数的参数,就可以直接执行了if (args.length >= func.length) {return func.apply(this, args);}// 否则返回一个新函数继续收集参数// 当参数不足时,返回一个新函数继续收集参数// 新函数将之前收集的参数(args)与新传入的参数(newArgs)合并return function (...newArgs) {// 这里就是链式调用return curried.apply(this, args.concat(newArgs));};};};

我写的一些问题:

  1. 结构复杂:嵌套了两个函数(curried和result),逻辑不够直观
  2. 参数收集不完整:只收集了第二次及以后的参数,第一次调用的参数没有被收集
  3. 递归使用不当:result函数的递归调用方式不够优雅
  4. 链式调用逻辑有误:当传入空参数时才执行函数,这与柯里化的常见实现方式不同
http://www.dtcms.com/wzjs/236801.html

相关文章:

  • 建视频网站需要多少钱百度关键词挖掘
  • 做网站的图片房产搜索引擎广告形式有
  • 网站怎么做301定向营销推广网站
  • 杭州小程序推广长沙seo优化哪家好
  • 购物网站修改注册信息模块的分析宁波网站推广公司价格
  • 日本无码做受网站百度商家
  • 网站推广怎么做优化上海推广网站
  • 不注册公司可以做网站吗子域名大全查询
  • 那网站做问答网络策划营销
  • wordpress文库免费seo提交工具
  • 潍坊网站建设排行计算机编程培训学校哪家好
  • 中国建设银行网站-个人客户台州seo公司
  • 惠州网站建设多少钱跨境电商平台有哪些?
  • 企业官方网站建设地推推广方案
  • 安徽省建设厅网站证书查询2023年适合小学生的新闻有哪些
  • 做汽车网站销售怎么入手小红书推广运营
  • 昆明网站建设报价网站seo 工具
  • 信息产业部icp备案中心网站企业网站搭建
  • 龙岩网上房地产烟台seo
  • 用idea做html网站百度不收录网站怎么办
  • 开平网站制作临沂seo
  • 自贡网页制作天津百度整站优化服务
  • 做美团网站代码定制网站+域名+企业邮箱
  • 做精美ppt网站百度导航最新版本免费下载
  • 网站没有备案可以做百度推广吗网络推广常见的方法
  • 广告公司网站设计策划网络营销的主要内容有哪些
  • 福州三六零网络小额贷款有限公司重庆seo博客
  • 互联网网站建设计划书百度人工智能
  • 台州网站建设企业制作公司网页多少钱
  • 上海浦东建设集团官方网站营销型网站和普通网站