什么时候不能使用箭头函数

Posted 沿着路走到底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么时候不能使用箭头函数相关的知识,希望对你有一定的参考价值。

箭头函数的缺点

没有 arguments

无法通过 apply call bind 改变 this,因为箭头函数的 this 指向的是 父作用域

fn.call(person1, \'swimming\', \'hiking\')
fn.apply(person1, [\'swimming\', \'hiking\'])

不适用的场景

1、对象内的方法

const obj = 
   name: \'li\',
   getName: () => 
       return this.name
   

2、原型方法

const obj = 
    name: \'li\'


obj.__proto__.getName = () => 
    return this.name

3、构造函数

const Foo = (name, city) => 
    this.name = name
    this.city = city


const f = new Foo(\'li\', \'上海\')  // Uncaught TypeError: Foo is not a constructor

4、动态上下文中的回调函数

const btn1 = document.getElementById(\'btn1\')
btn1.addEventListener(\'click\', () => 
    this.innerhtml = \'clicked\'

以上是关于什么时候不能使用箭头函数的主要内容,如果未能解决你的问题,请参考以下文章

箭头函数为什么不能作为构造函数?

为啥我不能在初始化列表中使用箭头运算符?

箭头函数

箭头函数

什么时候应该在 ES6 箭头函数中使用 return 语句

[react] 在React中什么时候使用箭头函数更方便呢?