箭头函数的缺点
没有 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