首先要注意的是,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)
评论()
编辑
收藏
举报