vue中的this指向

首先要注意的是,JS中的this的指向只有在函数被调用后才能被确定,在函数的定义阶段是确定不了的

在JS中this的指向一般有四种规则

  • 一个函数作为对象的方法被调用时,这个函数中的this指向调用它的对象
  • 以构造函数的形式进行调用时,this指向new出来的实例对象
  • 以函数的形式直接进行调用时,这个函数中的this指向window
  • 通过call()和apply()等方法调用时,this是指定的那个对象

在JS的框架下,vue中this的指向有以下规则

  • data中的this指向window
  • 所有的生命周期函数中的this都指向vue实例对象
  • vue的v-on指令中可以接收JS语句,其中的this是window(vue组件中的v-on指令除外)
  • computed中的this指向vue实例对象
  • methods中的this有以下几种情况
    • 普通函数的this指向vue实例对象
    • 箭头函数没有自己的this,因此this指向其宿主对象的this(注意宿主对象是函数对象(它被调用后this的指向要进行具体分析),简单对象没有this)
    • 普通函数形式的回调函数的this是window,箭头函数形式的回调函数的this遵循箭头函数的原则(大多数情况下是vue实例对象)
posted @ 2021-11-06 16:47  未知的真实  阅读(3883)  评论(0编辑  收藏  举报