关于vue.js中箭头函数this的指向?

1、描述我的问题
发现箭头函数的this指向与普通函数的不一样,具体看代码。我的问题是怎么样才能让箭头函数的this能获取到VM。
2、我的代码:
这里不详细叙述,以vue的created函数为例

//箭头函数
  created:()=>{
    console.log(this)      //这里获取不到VM
  }


//普通函数
   created:function(){
    console.log(this)       //这里获取到VM
   }

3.vue文档中关于钩子函数this指向的解释:

所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着 你不能使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos())。这是因为箭头函数绑定了父上下文,因此 this 与你期待的 Vue 实例不同, this.fetchTodos 的行为未定义。

4、问题截图
①获取不到vm对象:
图片描述
②正常:
图片描述

请问各位大神:要保证能访问到VM对象,箭头函数里面应该怎么写?

阅读 11.9k
1 个回答

这个方式是可以正常取到 this 的。

created () {
    // do something
    console.log(this)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题