vue watch属性中的回调函数和箭头函数

  • Post author:
  • Post category:vue


回调函数中的this会指向全局对象,而vue的module默认使用严格模式回调函数中的this会指向undefined,那watch属性中的回调函数怎么指向vm实例呢,原因是在watch的源码里使用了call指定了this是vm实例

在这里插入图片描述

箭头函数不能在watch里使用,因为箭头函数本身没有this,无法使用call指定this,箭头函数的this就是定义时上层作用域中的this,

这个this是固定的无法通过that改变

const obj = {
    bg:() => {
        console.log(this)    
    }
}
obj.bg() //windows

很多人以为bg的箭头函数上一层作用域是obj这个对象的块级作用域,其实bg是obj的一个属性,他们应该是同一级的作用域,bg箭头函数this的指向应该是window(严格模式下是undefined)



版权声明:本文为qq_44844751原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。