柯里化箭头函数埋坑记

如何理解JavaScript多个连续箭头函数书写方式 导言: 本菜鸡在学习Vue编程的时候,看到有大佬写的代码用了多个连续箭头函数,完全不能理解是什么意思。经过多方调查和思考才初步理解。本篇文章记录一下自己学习和理解的心得。 有多个箭头函数的代码如何执行 我拿一个很普通的函数来举例子,比如下面代码: function sum (a, b) { return a + b; } 或者是这样: let sum = function (a, b) { a + b } 如果要写成箭头函数可以写成这样: let sum = (a, b) => a .. 阅读详情

今天写了个累加的柯里化函数如下:

function add(){
    let that = this;
    let arrs = Array.prototype.slice.call(arguments) 

    function fn(){
        return add.apply(that, arrs.concat(Array.prototype.slice.call(arguments)));
    };
    fn.toString = function (){
        let all = 0;
        for (var i = 0; i < arrs.length; i++) {
            var element = arrs[i];
            all += element;
        }
        return all;
    }
    return fn; 
}

然后运行 console.log(add(1)(2)(3)) 打印 ƒ 6 其中的f可能是谷歌浏览器自己加的。
但是把函数里面的fn修改成如下箭头函数:

var fn = () => {
    return add.apply(that, arrs.concat(Array.prototype.slice.call(arguments)));
};

结果运行结果是 ƒ 4
为什么会是这个样子呢?
这是因为忽略了箭头函数和普通函数的一个很大的区别(当然不是 this 的指向问题),就是箭头函数没有 arguments 对象。
所以每次调用的 arguments 都是最开始时候的参数,也就是上面的1,然后这里总共调用了3次函数,加上刚开始的时候初始化的一次所以共使用了四次第一个参数,也就是 1+1+1+1 也就是 4。

用WorkBuddy搭建漫剧AI自动化制作流水线全攻略 在内容创作领域,AI智能体正逐渐从单一工具辅助走向全流程自动化调度。其核心原理是将剧本、分镜、绘图、配音、剪辑等环节拆解为可独立执行的任务单元,由总控系统统一协调,从而大幅降低人力与时间成本。这种模式尤其适用于动态漫画(漫剧)这类环节多、专业度要求高的视频形态。传统制作流程中,角色一致性、配音周期和剪辑返工是公认的效率瓶颈,而借助AI智能体工作台,创作者只需输入故事创意,即可驱动多个数字分身协同完成内容生产。本文以WorkBuddy为例,详细展示如何配置模型、安装技能包并串联五段式流水线,将单集制作成本从万 阅读详情

相关推荐

使用 Python 实现无人机避障的人工势场算法

人工势场算法是一种基于力的控制方法,通过将目标位置视为一个吸引力源,而将障碍物视为排斥力源,来引导移动体朝着目标前进,同时避开障碍物。接下来,我们将定义几个类来实现人工势场算法,包括无人机类、障碍物类和势场类。

闲人编程的博客 2585

Scala中的 -> 与 <-以及=>,{}和()

<-只会出现在for循环里面 ->只会出现在k->v里面 但是=>就较为复杂了,有四种用法 1.表示函数的返回类型(Function Type) //定义函数 scala> def double(x: Int): Int = x*2 double: (x: Int)Int //定义一个函数变量: scala> var x : (Int) =&...

someInNeed的博客 2万+

SpringBoot3 + Vben5.0实战:从零搭建企业级管理后台(附完整代码)

本文详细介绍了如何从零开始,使用SpringBoot3与Vben5.0技术栈搭建现代化企业级管理后台。通过对比分析,阐述了该组合在开发效率、性能(如虚拟线程)和权限模型(RBAC)方面的优势,并提供了从项目初始化、核心功能开发到部署运维的完整实战指南,帮助开发者快速构建高性能、易维护的后台系统。

weixin_29306317的博客 172

Scala中=>(箭头函数)

Scala中=>和>=的区别 <= 小于等于 => 函数类型(箭头函数) 当定义一个函数的时候,需要使用=>,例如 scala> val triple = (x: Int) => 3 * x //定义了一个函数 triple: Int => Int = <function1> scala> def square(x: Int)...

z1941563559的博客 1216

oracle p6 破解版下载,Primavera P6项目管理软件 16~17 图文详细安装教程(附下载)

Primavera P6 Professional项目管理软件结合了Oracle和Microsoft SQL Server关系数据库,是一款非常好用且功能强大的综合的项目管理软件(PPM) 解决方案,主要用于土建等方面的施工计划分析,具有进度时间安排与资源控制功能的多用户、多项目系统,支持多层项目分层结构、角色与技能导向的资源安排、记录实际数据、自定义视图以及自定义数据,本文主要为大家图文详细介绍...

weixin_33978451的博客 4922

2017阿里内推笔试题--算法工程师(运筹优化)

2017阿里内推笔试题–算法工程师(运筹优化)题目沐哲是一个菜鸟仓库的一个拣货员,但他有非常个怪异的习惯。每次拣货的重量都要比之前拣的一个轻,每次拣到货后都可以得到1块钱,沐哲想知道这样最多能赚多少钱 32 34 7 33 21 2 13 12 3 11 26 36 16 30 22 1 24 14 20 23 25 5 19 29 27 15 9 17 31 4 6 18 8 10 3

shawpan的专栏 1万+

Scala语言的箭头函数

scala这里的parameters是输入参数,可以是一个或多个参数,=>符号后面的expression是函数体,可以是一个简单的表达式或一个代码块。

2501_91366345的博客 387

ABAP CURR Data Type 深度解析与实战案例

CURR 数据类型是 SAP ABAP 中为处理货币金额而设计的一种特殊数据类型。CURR 数据类型能够自动根据关联的货币代码字段(例如 WAERS)确定小数位数,从而保证金额数据的精度与正确性。CURR 类型通常在 SAP 数据字典中使用,常见于各类业务数据表中,如会计凭证、销售订单等场景中,用于存储货币金额。CURR 数据类型底层实现上类似于 DEC 数据类型,但其特别之处在于与货币代码字段的绑定,这使得金额的格式化和显示可以自动匹配相应的货币规则。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 880

Scala箭头总结

Scala箭头总结 在Scala中有如下3种箭头 -&amp;amp;amp;gt; &amp;amp;amp;lt;- =&amp;amp;amp;gt; 1. -&amp;amp;amp;gt; 创建map时使用,表示映射 val score = Map(&amp;amp;quot;小明&amp;amp;quot; -&amp;amp;amp;gt; 50, &amp;amp;quot;小红&amp;amp;quot; -&am

鱼落池中 3269

015、PCIE带宽计算:理论vs实际——调试手记

最近在调一块图像采集卡,主控抱怨数据吞吐量上不去。规格书上写着PCIE 3.0 x4,理论带宽接近4GB/s,实际测试却卡在2.5GB/s左右。硬件同事拍胸脯说链路训练正常,软件同事咬定DMA配置没问题——这种场景是不是很熟悉?

z534437748的博客 883

基于BERTopic模型的英文20新闻数据集主题聚类及可视化

BERTopic是基于深度学习的一种主题建模方法。BERT是一种用于NLP的预训练策略,它成功地利用了句子的深层语义信息。

Cachel Wood的博客 1461

scala:箭头总结

Scala箭头总结 在Scala中有如下3种箭头(其实可以更多) -> <- => 自定义符号 1. -> 创建map时使用,表示映射 val score = Map("小明" -> 50, "小红" -> 60) 字符串"小明"映射成50,"小红"映射成60 2. <- 左箭头在遍历时使用 val people = List("小明","小红"...

不花的花和尚的博客 623

Kappa函数:测量一致性并计算置信区间的R语言包

Kappa函数是一种常用的统计量,用于衡量两个评估者之间的一致性。在R语言中,有一个名为"vcd"的包提供了计算Kappa函数以及相应的置信区间的功能。本文将介绍如何使用"vcd"包来计算Kappa函数的值,并进一步计算置信区间。Kappa函数的值介于-1和1之间,值越接近1表示评估者之间的一致性越高,值越接近-1表示评估者之间的一致性越低,值接近0表示评估者之间的一致性接近于随机。通过以上步骤,我们成功地使用R语言中的"vcd"包计算了Kappa函数的值和置信区间。接下来,我们可以使用"vcd"包中的。

2301_79331230的博客 1877

关于 ES6箭头函数(多个连续的箭头函数与柯里化) a=>b=>{}

链接:https://www.cnblogs.com/xueandsi/p/6032578.html 转自 http://simplyy.space/article/577c5b0dcbe0a3e656c87c24 跳转地址:https://github.com/SimplyY/blog/search?utf8=✓&q=阿里实习生前端面试心得&type= 多个连续的箭头...

allanGold 7748

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JavaScript中:箭头函数/高阶函数/函数柯里化

如果一个函数的参数是函数,或者函数的返回值是函数则这个函数我们就称其为高阶函数柯里化必然是一个高阶函数

头条:俊哥前端工程师,真正的大师永远怀揣着一颗学徒的心。 1120

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

多个连续的箭头函数与柯里化

多个连续的箭头函数与柯里化 高阶函数 高阶函数定义:将函数作为参数或者返回值是函数的函数。 所以高阶函数分两种: 1.是我们常见的 sort ,reduce 等函数。 2.返回值是函数的函数。 一般而言,我们要理解常见的高阶函数还是很容易的。比如: function add(a) { return funct...

MichaelAn的博客 232

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

从 ES6 高阶箭头函数理解函数柯里化

前言:第一次看到多个连续箭头函数是在一个 react 项目中,然鹅确认了下眼神,并不是对的人,因为看得一脸懵逼。em......于是开始各种搜索,先是知道了多个连续箭头函数就是 es6 的多次柯里化的写法,对于函数柯里化,很久以前就知道这个名次,但是并不理解,也没有去了解。为了弄明白多个连续箭头函数,开始了简化之路。 首先看到了这样的一个例子: let add = a =&amp;gt; b =...

w18478272407的博客 509

JavaScript 函数柯里化(Currying)实现详解

JavaScript 函数柯里化(Currying)实现详解

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 5981

关于箭头函数的嵌套

关于箭头函数嵌套,也称为函数柯里化,它只不过是箭头函数的语法糖。那在项目中一般怎么使用呢? (1)普通函数: function add(a, b) { return a + b; } (2)普通函数柯里化(匿名函数) function add(a) { return function(b) { return a + b; } } 调用 console.l...

马优晨 2674

es6 双箭头函数调用 连续箭头函数的理解 初识柯里化

参考 :es6 双箭头函数调用有什么意义? https://segmentfault.com/q/1010000016320367 let getters = { total: (state) => (symbol) => { return (symbol || '$') + state.count; } } // 等效于 let getters =...

回纹勾边宝相花团 3042

高阶函数与ES6多箭头函数(柯里化)

在阅读react的部分源码时,逐渐接触了许多高阶函数和多箭头函数,想把知识点整理一下 1.高阶函数 所谓高阶函数,就是一个函数就可以接收另一个函数作为参数,或者是返回一个函数。 例如: var ADD =function add(a) { return function(b) { return a+b } } 调用:ADD(2)(3)即可获得结果 常见的高阶函数有map、redu...

xxwyxlf的博客 674

函数柯里化

柯里化(Currying)是函数式编程中的一种技术,它将一个多参数的函数转换成一系列单参数函数的过程。通过柯里化,一个需要多个参数的函数可以被转换为一个接受单一参数并返回一个新的函数,这个新的函数接受下一个参数,如此往复,直到所有参数都被提供为止。上部分代码里面有三个数组,里面的对象是键值对组成的,我们只想要数组里面的名字,我们可以使用数组的map方法来进行实现。创建curring的柯里化函数,传入第一个参数就是我们键名字,在返回一个箭头函数同时传入第二个参数就是我们的数组元素。5. reduce方法。

2402_84784191的博客 592

16、如何实现函数的柯里化

函数柯里化(Currying)是把一个多参数函数转换为一系列单参数函数的技术。通过柯里化,可以固定部分参数,返回一个新的函数等待接收剩下的参数。以下为你介绍几种实现函数柯里化的方法。

qq_45600165的博客 479

JavaScript 箭头函数

箭头函数是ES6新定义函数的语法语法:(参数)=>函数体return a+b;箭头函数return a+b;

laosao_66的博客 1915

柯里化理解与案例

柯里化也是属于函数式编程里面非常重要的概念;维基百科的解释:总结:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩余的参数;这个过程就称之为柯里化。柯里化是一种函数的转换,将一个函数从可调用的f(a, b, c)转换为可调用的f(a)(b)(c),柯里化不会调用函数,它只是对函数进行转换。 也可以使用箭头函数让代码更加简洁......

m0_51636525的博客 525

React项目中箭头函数的便捷使用时机:提升开发效率与避免this绑定陷阱

在React项目中,什么时候使用箭头函数会更方便? 本文详细解答了这一问题,探讨了在事件处理、内联渲染、Hooks回调等场景下使用箭头函数如何避免this绑定陷阱、简化代码结构并提升开发效率,并通过流程图与代码示例帮助开发者掌握最佳实践。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1466
上一篇: React死循环问题
下一篇: page-break在IE上打印不分页问题
javao_0
博客等级 码龄12年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值