箭头函数出现之前,this指向问题:
- 通过对象调用函数,this指向对象
- 直接调用函数,this指向全局对象
- 如果通过new调用函数,this指向新创建的对象
- 如果通过apply、call、bind调用函数,this指向指定的数据
- 如果是DOM事件函数,this指向事件源
有这样一个函数调用场景:
const obj = {
count: 0,
start: function() {
// this->obj
console.log(this)
setInterval(function() {
console.log(this)
// this.count++;
// console.log(this.count);
}, 1000)
}
}
obj.start();
这里会出现问题,因为 setInterval 是JS引擎内部直接调用这个函数,此处的this指向window this.count++ 将返回NaN
为了解决这一问题,并使函数书写简洁,箭头函数应运而生。
箭头函数 使用方法
箭头函数是一个函数表达式,理论上任何使用函数表达式的场景都可以使用箭头函数
箭头函数完整语法:
(参数1,参数2,...)=>{
//函数体
}
1