ES6-7 - 箭头函数的实质、箭头函数的使用场景

本文深入探讨了箭头函数的特性,包括其如何返回对象、不具有的this绑定、不能作为构造函数及不支持arguments。同时阐述了在定义对象方法时为何避免使用箭头函数,并举例说明了bind与箭头函数在this指向上的差异。此外,还讨论了箭头函数在嵌套使用和应用场景中的注意事项,如适用于简单函数表达式、事件绑定和内层函数表达式中this保持一致的情况。
摘要由CSDN通过智能技术生成

箭头函数返回对象

// 这种情况要要用(),否则会将对象的{
   }解释为块
const fn = (a, b) => ({
   a:1, b:2})

箭头函数的特点

  1. this指向由外层函数的作用域来决定,它本身没有this,不能通过call、apply、bind改变
  2. 不能作为构造函数使用
  3. 不可以使用arguments对象,该对象在函数体内不存在,可用rest代替
  4. 不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
function foo() {
   
    console.log('this', this)
    return (a) => {
   
        console.log('a', this.a)
    }
}
var obj1 = {
    a: 2 };
var obj2 = {
    a: 3 };
var bar = foo.call(obj1)
bar.call(obj2) // 2
  • 所有的内层函数都是箭头函数,都没有自己的this,它们的this其实都是最外层foo函数的this。
function foo() {
   
  return () 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值