深入浅出箭头函数

143 阅读1分钟

箭头函数不仅仅是编写简洁代码的“捷径”。它还具有非常特殊且有用的特性。 箭头函数的特点

  • 没有this
  • 没有argument
  • 没有new
  • 没有super

关于箭头函数的this如何确定 一句话就是在声明箭头函数的词法作用域里的this。 对于普通函数来说this,要看函数调用;箭头函数则是看函数声明 你可以把箭头函数的this看做一个变量,普通函数的this看做参数。 比如

const a = 1
const f = () => {
  console.log(a)
}
f() //  1

this 就跟 a 一样,作用域里找不到,就往词法作用域里找。就算你用call来调用箭头函数也是没有作用的。 可以把对象、函数、普通和箭头函数结合起来考考你 image.png 用 obj.x()来调用, this就是obj。 坑一:注意我们只看函数,不看对象 坑二:x是普通函数只看调用,所以找this到这里就结束了。


箭头函数的冷知识

// 当你想用箭头函数返回一个对象时
const animal = (name,leg) => {name: name, leg: leg } // 这样会报错

const animal = (name,leg) => ({name: name, leg: leg }) //对了
// or
const animal = (name,leg) => [{name: name, leg: leg }][0]