箭头函数不适合的地方
不能将箭头函数用于定义对象的方法且内含有this
const cat = {
lives: 9,
jumps: () => {
this.lives--;
}
}
调用cat.jumps()
时,如果是普通函数,该方法内部的this
指向cat
;如果写成上面那样的箭头函数,使得this
指向全局对象,因此不会得到预期结果。这是因为对象不构成单独的作用域,导致jumps
箭头函数定义时的作用域就是全局作用域。
关键问题是:对象不构成单独的作用域。