ES6 箭头函数解决 this 作用域问题

在写 JS 时,尤其是在写回调函数的时候,经常会遇到一个很头疼的问题:this 的指向并非我所想要的(我想使用 this 调用外面大的函数,可实际上往往调用的是当前小的函数)。
直到我发现了 ES6 的箭头函数可以完美的避免这个问题。

1
2
3
() => {
console.log(this.infoHash) // 此处 this 非当前箭头函数
}

对比

1
2
3
function () {
console.log(this.infoHash) // 此处 this 为当前匿名函数
}