箭头函数的缺点

130 阅读1分钟

箭头函数的缺点

  • 没有 arguments

  • 无法通过 apply call bind 改变 this

  • 某些箭头函数代码难以阅读

不适合使用箭头函数的情况

  • 1、不适用与对象方法
const obj = {
    name: "dj",
    getName: () => {
        return this.name;
    }
}

console.log(obj.getName()); // 拿不到
  • 2、不适用与原型方法
const obj = {
    name: "dj"
}
obj.__proto__.getName = () => {
    return this.name
}

console.log(obj.getName()) // 拿不到
  • 3、不适用于构造函数(箭头函数无法当做构造函数)
const People = (name, age) => {
    this.name = name;
    this.age = age;
}

const p = new People("dj", 20); // 报错
  • 4、不适用于动态上下文中的回调函数
const btn = document.getElementById("btn");

btn.addEventListener("click", () => {
    // this === window
    this.innerHTML = "clicked";
})
  • 5、不适用于Vue生命周期和method

vue 组件本质上是一个 js 对象 react 组件(非hooks)本质上是一个 es6 class class 组件用箭头函数是可以的

mounted: () => {},

methods: {
    getName: () => {}
}