ES6:箭头函数的特点及this问题

箭头函数是用来简化函数定义语法的:

// 如下就是一个箭头函数
const fn = () => {
    console.log(123);
}
fn();

1.在箭头函数中,如果{}函数体只有一句代码,且代码的执行结果就是函数的返回值,函数体大括号{}可以省略不写。

        const fn = (x,y) => {
            return x+y;
        }
        console.log(fn(1,3)); // 4

        // 可以这样简写
        const fn2 = (n1,n2) => n1+n2;
        console.log(fn2(2,3)); // 5

2.在箭头函数中,如果形参只有一个,可以省略小括号()。

      // 形参只有一个num 且执行结果就是函数的返回值
      const fun = num => num;
      console.log(fun(20)); // 20

3.箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this。

 // 箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this。
      const obj = {name:"Axx",age:19};
      const fn = () => {
          console.log(this);
      }
      fn.call(obj); // this指向还是window,因为箭头函数没有自己的this


      function fn2(){
          console.log(this); // fn2普通函数this指向obj
          return () => {
              console.log(this);
          }
      }
  // 此时箭头函数的this指向obj,因为箭头函数处于fn2函数体当中,而fn2的this指向的是obj,因此箭头函数的this也指向obj
      fn2.call(obj)(); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>