箭头函数与普通函数的this指向我感觉网上的教程都好像说的很迷的样子。
个人理解如下:箭头函数没有this,它会类似变量作用域一样层层往上去查询this。
这就意味着如果箭头函数的外部是一个object,虽然object拥有this,但是无法赋予箭头函数。 这就需要我们原来的普通函数,它会默认的将this绑定入内,也可以传递给内部的箭头函数。
const obj = {
foo: () => {
console.log(this)//那是必须的window。别指望obj的this给的到你!
}
}
const obj = {
foo() {
console.log(this) // 普通函数,this指向obj。这个函数内this有明确的指向!
}
}
const obj = {
foo() {
const bar = () => {
console.log(this) // 这个箭头函数存在于一个拥有this可以传递的上下文环境当中,它可以拿到foo 的this
}
}
}
我的理解就是如此的简单,我也是翻阅了许多资料自己总结的,感觉大家说的都很隐晦的样子。
希望能有大手帮我看看我的理解正确与否(这个理解在基本使用都没什么问题了)