vue watch的this 到底是什么?

正文

watch: {
    value: (newV, oldV) => {
    this.a = newV;
    }
}

加入该vue对象中,data 有:
{
data:{
a:5
}
}

那么请问,如果value 修改值为6,这时候a的值是否为6?

答案:

不是的。

原因

因为这个时候watch使用的是=>,是箭头函数,那么这时候的this,其实是window对象,而不是当前vue 对象。

需要这样写:

watch: {
    value: function(newV, oldV) {
    this.a = newV;
    }
}

官方给出的答案是:

ok,实际上=》会找到他的上下文的父类。

posted @ 2020-06-13 21:24  敖毛毛  阅读(4793)  评论(0编辑  收藏  举报