首先,在Vue所有的生命周期钩子方法(如beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestory以及destoyed)里使用this,this指向调用它的Vue实例,即(new Vue)。
其次,箭头函数没有自己的this,它的this是继承而来;默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象。
例子:
methods:{
group:function(){
this......
//ESS的普通函数写法,这里的this指向app,指向vue实例
},
group1:()=>{
this....
//ES6的箭头函数写法,箭头函数没有自己的this,它的this是继承来的,指向在定义它时所处的宿主对
//象,在这里this指向window
},
group2:fundtion(){
//这里this同group中的this一样,指向vue实例
this.sList.forEach(function(obj){ //匿名函数中的this
//在匿名函数中,这里的this不指向vue实例,这里的this指向window,在严格模式下,this指向
//undefined,要使用this,可以直接用app(即vue实例)
app.sResultList.push(obj)
})
},
group3:function(){
//这里的this同group中的this一样,指向vue实例
this.sList.forEach((obj)=>{
//匿名函数没有自己的this,它的this继承来的,也可以说这里的this指向跟上一级的this指向相同,
//即vue实例
this.sResultList.push(obj)
})
}
}