为什么需要箭头函数?

为什么需要箭头函数?大家有没有考虑过这个问题,箭头函数难道只是为了给我们简化了function关键字?

1.前言

我们都知道箭头函数是es6的新语法,那么在es6之前我们会遇到什么困惑呢?我们拿到一个函数,如果我们不了解这个函数,你会怎么调用它呢?直接当作函数直接调用,又或者使用new关键字进行调用,我们以内置的Date函数为例,我们拿到一个函数,存在两种调用方式,这里就产生的一个二义性问题。

// 直接调用
Date(); //

// 使用new关键字调用
new Date(); //

2.结论

伴随着箭头函数一起出现的其实还有另一个新语法,那就是class。这两个语法的出现就是为了解决函数的二义性,当然也是为了更好的拥抱面向对象思想。使用箭头函数定义的方法,能够直观的知道这个函数只能直接调用,而用class创建的一个类,只能通过new关键字进行调用。

const fn = ()=> {}

new fn(); // Uncaught TypeError: fn is not a constructor


class Fn {
    constructor() {
        
    }
}

Fn(); // Uncaught TypeError: Class constructor Fn cannot be invoked without 'new'

所以箭头函数的出现,消除了函数的二义性,更好的拥抱面向对象思想,也就可以说的通,为什么箭头函数没有this了,因为this是属于面向对象思想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值