当前位置:首页>热门 > >正文

看点:深入理解JavaScript中的箭头函数

  • 2023-05-05 15:25:52来源:清一色财经

箭头函数不仅仅是编写简洁代码的“捷径”。它还具有非常特殊且有用的特性。

[[357995]]

让我们深入研究一下箭头函数。


(资料图)

箭头函数不仅仅是编写简洁代码的“捷径”。它还具有非常特殊且有用的特性。

JavaScript 充满了我们需要编写在其他地方执行的小函数的情况。

例如:

arr.forEach(func) —— forEach 对每个数组元素都执行 func。setTimeout(func) —— func 由内建调度器执行。……还有更多。

JavaScript 的精髓在于创建一个函数并将其传递到某个地方。

在这样的函数中,我们通常不想离开当前上下文。这就是箭头函数的主战场啦。

一、箭头函数没有 “this”

正如我们在 对象方法,"this" 一章中所学到的,箭头函数没有 this。如果访问 this,则会从外部获取。

例如,我们可以使用它在对象方法内部进行迭代:

letgroup={title:"OurGroup",students:["John","Pete","Alice"],showList(){this.students.forEach(student=>alert(this.title+":"+student));}};group.showList();

这里 forEach 中使用了箭头函数,所以其中的 this.title 其实和外部方法 showList 的完全一样。那就是:group.title。

如果我们使用正常的函数,则会出现错误:

letgroup={title:"OurGroup",students:["John","Pete","Alice"],showList(){this.students.forEach(function(student){//Error:Cannotreadproperty"title"ofundefinedalert(this.title+":"+student)});}};group.showList();

报错是因为 forEach 运行它里面的这个函数,但是这个函数的 this 为默认值 this=undefined,因此就出现了尝试访问 undefined.title 的情况。

但箭头函数就没事,因为它们没有 this。

不能对箭头函数进行 new 操作

不具有 this 自然也就意味着另一个限制:箭头函数不能用作构造器(constructor)。不能用 new 调用它们。

箭头函数 VS bind

箭头函数 => 和使用 .bind(this) 调用的常规函数之间有细微的差别:

.bind(this) 创建了一个该函数的“绑定版本”。箭头函数 => 没有创建任何绑定。箭头函数只是没有 this。this 的查找与常规变量的搜索方式完全相同:在外部词法环境中查找。

二、箭头函数没有 “arguments”

箭头函数也没有 arguments 变量。

当我们需要使用当前的 this 和 arguments 转发一个调用时,这对装饰器(decorators)来说非常有用。

例如,defer(f, ms) 获得了一个函数,并返回一个包装器,该包装器将调用延迟 ms 毫秒:

functiondefer(f,ms){returnfunction(){setTimeout(()=>f.apply(this,arguments),ms)};}functionsayHi(who){alert("Hello,"+who);}letsayHiDeferred=defer(sayHi,2000);sayHiDeferred("John");//2秒后显示:Hello,John

不用箭头函数的话,可以这么写:

functiondefer(f,ms){returnfunction(...args){letctx=this;setTimeout(function(){returnf.apply(ctx,args);},ms);};}

在这里,我们必须创建额外的变量 args 和 ctx,以便 setTimeout 内部的函数可以获取它们。

三、总结

箭头函数:

没有 this没有 arguments不能使用 new 进行调用它们也没有 super,但目前我们还没有学到它。我们将在 类继承 一章中学习它。

这是因为,箭头函数是针对那些没有自己的“上下文”,但在当前上下文中起作用的短代码的。并且箭头函数确实在这种使用场景中大放异彩。

标签:

延伸阅读

推荐阅读

看点:深入理解JavaScript中的箭头函数

箭头函数不仅仅是编写简洁代码的“捷径”。它还具有非常特殊且有用的特性。2020-12-1609:47:01JavaScript箭

全球微资讯!黑化反派_黑化是什么梗

1、不过现在的阿纲应该更厉害一些,不同时空的阿纲能力是不一样的【按家教语言来说】毕竟有那么多的平行世

环球头条:5月5日人民币兑美元中间价下调60个基点

央行授权中国外汇交易中心公布,2023年5月5日银行间外汇市场人民币汇率中间价为:1美元对人民币6 9114元,1

完全家居装饰图册功能篇

1、《完全家居装饰图册功能篇》是2001-11-1湖南科学技术出版社出版的图书。2、作者是贺景卫。本文到此分享

要闻速递:广汽本田4月售出整车超6万辆,同比增长40.2%

广汽本田4月共计售出整车60498辆,同比增长40 2%,环比增长44 7%。其中电气化车型月终端销量为15041辆,同

龙珠弗利萨第几集出来(龙珠超弗利萨复活第几集简介介绍)

对于龙珠超弗利萨复活第几集这个问题感兴趣的朋友应该很多,这个也是目前大家比较关注的问题,那么下面小好

全球最大规格剪切型密炼机下线 全球微头条

记者5月4日从中国中化控股有限责任公司获悉,该公司旗下益阳橡胶塑料机械集团有限公司(以下简称益阳橡机)自

意大利2023年1-2月丝绸商品进出口情况-微头条

一、2月丝绸商品贸易情况据欧盟统计局统计,2月丝绸商品贸易额为3 11亿美元,环比下降33 31%,同比下降37 0

商贸与文旅齐飞 “五一”假期江西消费市场强劲复苏 环球观察

“五一”假期,江西文旅市场供需两旺,文旅活动精彩纷呈。同时,我省各地开展了丰富多彩的促消费活动,各级

观察:美国3月商品和服务贸易逆差额降至642亿美元

美国3月商品和服务贸易逆差额降至642亿美元---美国商务部4日公布的数据显示,受出口增加推动,3月美国商品

兰州新区那有色情服务,违法吗?-当前热议

兰州新区那有色情服务,违法吗?

“五一”消费市场见闻丨新能源汽车门店的试驾看车热潮

新华社北京5月4日电(记者吉宁)“五一”假期,各地旅游、购物和娱乐等活动升温,整个消费市场迎来一股不小

兄弟俩替父追债被判寻衅滋事再度二审:检方仍认为事实不清

澎湃新闻记者王鑫2022年12月8日,刚走出看守所的林树明来到岫岩县法院参加庭审。本文图片均由受访者供图5月

十项措施支持辛集高水平开放高质量发展 热点聚焦

河北日报讯(记者董昌通讯员张愉)日前,石家庄海关与辛集市政府签署合作备忘录,从支持辛集市扩大高水平对

生成绿色电力购买证明的流程是怎样的? 全球头条

成功购买了绿证以后,绿证认购交易网会自动生成绿色电力购买证明,注明绿证采购企业名称或个人姓名、采购新

中信证券:中国免税行业重回消费回流的渠道扩容逻辑未变 热推荐

我们仍然认为应放眼长期,中国免税行业重回消费回流的渠道扩容逻辑未变

世界快资讯丨江苏江阴枪案2人受伤,附近居民:望尽快抓住案犯!

海报新闻记者于明效上海报道5月4日,网传江苏无锡江阴铂领公馆附近发生枪击,有两人被击中,其中一人为普通

全球微头条丨方舟与新夜与Apocalypse_关于方舟与新夜与Apocalypse介绍

方舟与新夜与Apocalypse,关于方舟与新夜与Apocalypse介绍这个很多人还不知道,现在让我们一起来看看吧!1

当前消息!光与生活的科技媒介,欧普的智能照明体验

黄昏时分,你放下手中的平板,靠在书桌前轻叹一声。一日的忙碌让人感到有些疲惫,而房间里刺眼的灯光也在刺

为了那一份“长江嘱托”-热点

位于江苏宜兴的中国首座城市污水资源概念厂。三峡集团供图工作人员在安徽六安“水管家”集控中心监控管网情

一季度有色金属行业生产开局良好_全球快播

原标题:10种常用有色金属产量同比增长9%(引题)一季度有色金属行业生产开局良好(主题)中工网北京5月4日

VR&AR板块5月4日跌0.2%,深天马A领跌,主力资金净流出26.46亿元-世界报道

5月4日VR&AR板块较上一交易日下跌0 2%,深天马A领跌。当日上证指数报收于3350 46,上涨0 82%。深证成指报

环球消息!5月4日基金净值:富国长期成长混合A最新净值0.7798,涨0.14%

5月4日,富国长期成长混合A最新单位净值为0 7798元,累计净值为0 7798元,较前一交易日上涨0 14%。历史数据

*ST泛海: 关于公司控股股东的一致行动人计划增持公司股份的公告|环球通讯

*ST泛海:关于公司控股股东的一致行动人计划增持公司股份的公告

中天金融:贵阳中院决定对公司启动预重整程序-环球新消息

证券时报e公司讯,中天金融(000540)5月4日晚间公告,公司收到贵阳市中级人民法院(简称“贵阳中院”)送达的

江苏移动话费查询系统_江苏移动话费查询

1、展开1全部你登陆之后。2、点击左侧的“网上充值与入网”然后右侧的上方就会有充值缴费的按钮

初灵信息:收到浙江证监局警示函 世界时快讯

初灵信息:收到浙江证监局警示函,警示函,初灵信息,浙江证监局,上海证券交易所,股票交易异常波动公告,上市公

全球时讯:宝宝树延迟寄发2022年报,于5月2日起停牌

宝宝树延迟寄发2022年报,于5月2日起停牌

世界微速讯:互联网平台、数字人民币来助力,“五一”假期消费数据来了!你贡献了多少

在支付机构披露的支付数据之外,透过上海、长沙、广东、重庆等多个热门省市的消费支付金额数据,也能窥见消

来听听这届年轻人,有着怎YOUNG的青春宣言?

谈到如何再现苏东坡宦海沉浮,将他在眉山成婚、湖州陷狱、汴京受审、杭州疏浚西湖、黄州躬耕东坡、惠州引水

猜您喜欢

Copyright ©  2015-2022 热讯服装网版权所有  备案号:豫ICP备20005723号-6   联系邮箱:29 59 11 57 8@qq.com