箭头函数

箭头函数

一、语法:

就是把function删掉,在小括号和大括号中间添加了一个 ‘=>’

1
2
3
4
const sum = (n1, n2) => {
console.log(n1 + n2);
}
sum(1, 2) // 3

二、特点:

  1. 如果参数列表只有一个参数,小括号可以省略(没有参数不可以省略)
1
2
3
4
const sum2 = n1 => {
console.log(n1 + 10);
}
sum2(100)
  1. 如果函数体只有一句话,大括号可以省略(且如果有return,return也可以省略)
1
2
3
4
5
const sum3 = n1 => console.log(n1 + 20);
const sum4 = n => n + 1 // return n + 1 (看的时候需要随时注意前面会有return)
sum3(200)
console.log(sum4(55)); // 56
heros.forEach(item => sum += item.wu) // 没有return也可以省略
  1. 箭头函数没有this,会往作用域外面访问,所以需要用到this的地方就不要用箭头函数了(对象中的对象中的方法this访问的是哪个)

    好处:例如用于解决setTimeout方法中this只能指向window的问题

    坏处:构造函数、对象内的方法等,this会往作用域外找,不再指向本体(例如dom中的点击事件常常会用到this,所以不适合用箭头函数)