在我们开发项目时var that=this的用法很常见:
举例如下(1):
Add({
//弹框关闭
data:{
dialogVisible:true,
},
methods:{
var that=this //这里声明了that;将this存在that里面
initTable(){
var that = this;
axios.post
("/branch/list?currentPage=" + this.currentPage + "&pageSize=" + this.pageSize , this.branchSearch).then(function (result) {
if (result.data.code == 2000) {
that.tableData = result.data.data.list;//这里使用that,就可以获取Add对象
that.total = result.data.data.total;
}
}
}
})
在我们代码中可以看到提前声明了var that=this 后面就能可以使用that了.
总结如下:
this作用域分析:
1.在Page({})里面,this关键字指代Page({})整个对象
2.因此可以通过this关键字访问或者重新设置Page({})里data的变量
3.然而在loadData函数中使用了wx.request({})API这个方法导致在wx.request({})里没办法使用this来获取Page({})对象
4.虽然在wx.request({})里没法使用this获取Page({})对象,但是可以在wx.request({})外面先把this存在某个变量中,所以就有了var that =this 这个声明。此时that指代Page({})整个对象,这样子就可以在wx.request({})里使用that访问或者重新设置Page({})里data的变量