箭头函数的意义

箭头函数的意义

引言

不论是在面试题还是项目中,我们经常会接触到 箭头函数。说起箭头函数,首先我们会想到的就是它与普通函数的区别,并且可以说上来很多,如this指向、 arguments对象、 ptototype属性…等;但是这只是一个普通问题, 如果问你为什么需要箭头函数,ES6为什么要推出箭头函数,箭头函数的意义?我们该如何回答。

其实总结起来就是一句话:消除普通函数的二义性

函数的二义性

首先解释一下函数的二义性,即函数有两个作用:

1.指令序列,也就是最常用的,执行一个函数方法,把这个函数内的指令从头到尾执行一遍

2.构造器,即面向对象,可以用来创建一个实例

示例:

function a() {}
调用1a()
调用2new a()

可以看到,在上述函数中,函数的二义性是让这个函数有了两种调用方法, 并且使用两种调用方式都不会报错。
因此在某些情况下我们会很困扰, 经常搞不懂这个函数到底是哪种含义:

const num1 = Number()
const num2 = new Number()
const date1 = Date()
const date2 = new Date()

消除二义性

因此ES6的推出解决了很多语言层面的缺陷,其中就包括二义性,下面看一下ES6是如何做的.

  1. class类。 使用class声明的类,只有上述的第二层含义(构造器),没有了指令序列的含义,所以只能使用new的方式来调用,否则会报错。
  2. 箭头函数。 当我们书写一个箭头函数的时候,只有上述的第一点含义(指令序列),没有了构造器的含义。所以不能使用new的方式来调用,否则会报错。
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值