在前端经常面试中,可能会运到这样一个问题涉及到柯理化的题目

add(1)(2)(3) = 6;
add(1, 2, 3)(4) = 10;
add(1)(2)(3)(4) = 15;

这个问题的目的是想让add执行之后返回一个函数能够继续执行,最终运算的结果是所有出现过的参数之和,而这个题目的难点在于参数的不固定,我们不知道函数会执行几次,因此不能使用前面封装的createCurry通用公式来转换一个柯理化函数,只能自己封装,该怎么样操作呢?在此之前,补充两个非常重要的知识点。

一个是ES6函数的不定参数。假设我们有一个数组,希望把这个数组中所有的子项展开传递给一个函数作为参数,那么应该怎么做?

// 大家思考一下,如何将args数组的子项展开作为add的参数传入
function add(a, b, c, d){return a + b + c + d;
}
var args = [1, 2, 3, 4];

在ES5中,我们可以借助之前学习过的apply来达到这个目的。

add.apply(null,args);

然而在ES6中,提供一种新型的语法来解决这个问题,那不就是不定参数?写法如下:

add(...args);

这两种写法是等效的,在接下来的实现中,我们会用到不定参数的特性。

第二个要补充的就是知识点函数的隐形转换

当函数直接参与其他计算得时候,函数会默认调用toString方法,直接将函数体转换为字符串参与计算。

<

js系列二十四:额外知识补充,无限参数柯理化相关推荐

  1. 数据与广告系列二十六:知识迁移的Embedding应用,智能化定向的解药

    作者·黄崇远 『数据虫巢』 全文共4348字 题图ssyer.com " 效果广告后定向时代,虽有千般万难,我们一样还得解决定向智能的问题." 需要提前说明的是,这一篇会涉及到本系 ...

  2. 数据与广告系列二十四:效果广告后定向时代如何逆流而上

    作者·黄崇远 『数据虫巢』 全文共4338字 题图ssyer.com " 在效果广告的发展历程中,当前已经处于后定向时代,或者说是弱定向时代,我们是应该顺应潮流还是应该逆流而上?" ...

  3. 数学之美系列二十四 -- 谈谈动态规划与如何设计动态规划算法

    数学之美--动态规划 今 年九月二十三日,Google.T-Mobile 和 HTC 宣布了第一款基于开源操作系统 Android 的 3G 手机,其中一个重要的功能是利用全球卫星定位系统实现全球导航 ...

  4. 电气器件系列二十四:电子式压力传感器PPG-D(1)

    说明书地址: https://max.book118.com/html/2017/0721/123285653.shtm 正压.负压=真空压力.连成压=复合压力 复合压力: 复合量程就是测量的量程是从 ...

  5. 【ASE入门学习】ASE入门系列二十四——轴向溶解

    武器出现消失效果复刻,涉及知识点:轴向溶解.光边溶解.Surface材质.UV2(第二套UV).Animation动画制作.简单光粒子制作 至此自发光四个部分说明完毕(第一部分是自反光贴图自身)把这4 ...

  6. 【Python学习系列二十四】scikit-learn库逻辑回归实现唯品会用户购买行为预测

    1.背景:http://www.datafountain.cn/#/competitions/260/intro DataFountain上的唯品会用户购买行为预测比赛题目,笔者用逻辑回归实现,分数是 ...

  7. 【缅怀妈妈系列诗歌】之二十四:一份永不忘却的思念

    [缅怀妈妈系列诗歌]之二十四:一份永不忘却的思念 题记:在新年来临之际,梦着与逝去的妈妈团聚过元旦节有感. 谨以这一系列文章和诗歌缅怀我病逝的妈妈,祈祷她老人家在天能得以安息! --代腾飞 2010年 ...

  8. Docker系列(二十四)——Docker实例六Docker安装Redis实例

    < Docker实例三Docker安装Redis实例 > 前言 在前面一篇文章种,完成了 < Docker安装MongoDB实例 >,本篇将继续镜像安装教程,并完成Docker ...

  9. 数据与广告系列二十二:智能化投放中扩量场景的技术实现策略

    作者·黄崇远 公众号 『数据虫巢』 全文8968字 题图ssyer.com " 人不够,系统给你凑." 这个系列上一篇<数据与广告系列二十一:关于品牌广告,奔涌吧后浪> ...

最新文章

  1. android碎片调用动态碎片,Android Training - 使用碎片创建一个动态UI
  2. json省市区城市级联
  3. 黄聪:Wordpress 模版技术手册 - WordPress Theme Technical manuals
  4. python一些常用方法_python 的一些常用方法
  5. 等重构完这系统,我就辞职
  6. 求出歌手的得分python_哪位大侠帮我做做python的题目啊,做其中5个就好。跪求啊...
  7. 招人了!MySQL 面试必须掌握的 8 个知识点!
  8. 设计模式实例(Lua)笔记之六(Adapter模式)
  9. msdev devenv 的命令行用法
  10. c语言正方体的表面积和体积公式,长方体的表面积(正方体体积的计算公式)
  11. python opencv双目测距_使用OpenCV/python进行双目测距
  12. 【技术类】2019校招技术类岗位面经汇总
  13. 【雕爷学编程】Arduino动手做(108)---GY-521三轴模块
  14. “校长”,我的同事,神奇的秋名山车神
  15. 信息系统项目管理师必背核心考点(二十一)可交付成果
  16. GBin1分享:25个超酷手绘插图的网站设计
  17. 保研历程(经验分享、保研流程介绍)
  18. 陌陌注册了新公司,要开卖人工智能硬件了?
  19. 利用Biopython 快速根据pmid 来下载参考文献信息
  20. 分布式锁实现业务幂等

热门文章

  1. 还在为Android表情开发烦恼吗,快来试试Android Emoji吧
  2. Docker仓库之企业级可视化私有仓库Harbor(安装、快速、入门)
  3. Django深入研究(URL编写、视图探究)
  4. 索尼a5100_索尼a5100镜头可换吗_索尼a5100镜头卡口是什么-太平洋IT百科
  5. 小程序云开发基础教程一
  6. 叫你一声Mylove
  7. 京东构建需求响应式亿级商品详情页技术分析
  8. 企业微信机器人推送mysql_Zabbix.5.0设置企业微信群机器人推送告警信息
  9. mysql范围索引_mysql 组合索引中对范围的查询
  10. 00003 不思议迷宫.0009.2.1:自动换装:简单规划