箭头函数原来是这样的,99.9% 的人都不知道这点

点击上方 前端瓶子君,关注公众号

回复算法,加入前端编程面试算法每日一题群

一句话答案

因为箭头函数没有[[Construct]]这个内部槽。

进一步解释

函数对象是一个支持[[Call]][[Construct]]内部方法的对象。每个支持[[Construct]]的对象必须支持[[Call]],也就是说,每个构造函数必须是一个函数对象。因此,构造函数也可以被称为 构造函数函数构造函数对象
所以,想要对某个对象使用 new,就得确保该对象具有[[Construct]]这个内部方法。而箭头函数没有[[Construct]]

为什么没有[[Construct]]

因为箭头函数设计之初,就是为了设计一种更简短的函数并且不绑定 this。所以箭头函数不为参数 superthisnew.target 定义本地绑定。箭头函数中的 thissuperargumentsnew.target 这些值由外围最近一层非箭头函数决定。

而这样的一个函数设计者认为没有必要委托给能够[[Construct]]的目标函数。所以箭头函数没有 [[Construct]]

同时因为没有构造原型的需求,所以箭头函数不存在 prototype 属性。

相关论据

97847faa7dbeed12f07f350eac020f4f.png
image.png
d5473931c11a8d51d21b09cdfaed2c2e.png
image.png
1887b3295b185375d433d1b2e1354c35.png
image.png
b6813d1e3e612edc1ef48f8c3d4a15d0.png
image.png

以上为个人的一些见解,欢迎各位大佬拍砖

关于本文

作者:Jokerrr

https://juejin.cn/post/7050492355056664612

最后

欢迎关注【前端瓶子君】✿✿ヽ(°▽°)ノ✿

回复「算法」,加入前端编程源码算法群,每日一道面试题(工作日),第二天瓶子君都会很认真的解答哟!

回复「交流」,吹吹水、聊聊技术、吐吐槽!

回复「阅读」,每日刷刷高质量好文!

如果这篇文章对你有帮助,「在看」是最大的支持

 》》面试官也在看的算法资料《《

“在看和转发”就是最大的支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值