Vue3复习——Vue中的methods中的方法为什么不能使用箭头函数

764 阅读1分钟

1.methods中的方法为什么不能使用箭头函数

官方解释:

注意,不应该使用箭头函数来定义 method 函数 (例如 plus:() => this.a++)。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向组件实例,this.a 将是 undefined。

个人理解:

如果我们在methods中使用箭头函数,那么这个this就会是window,因为箭头函数的作用域会到自己去上层来查找this,这里最终找到的是script作用域中的this,所以是window。

如果我们不使用箭头函数,this到底指向什么?

事实上Vue的源码当中就是对methods中的所有函数进行了遍历,并且通过bind绑定了this:(图片引用自coderwhy vue3课程)

image.png