标题:微信小程序开发中var that = this的用法详解
如果在小程序开发过程中,涉及到函数嵌套或者回调函数中需要使用到外部的this时,就需要用到var that = this的语法。因为在回调函数内部,this指向的是回调函数本身,而不是最初的作用域。
具体步骤如下:
- 在最开始的作用域中,先定义一个变量that,并将该作用域的this赋值给该变量。
Page({
data: {
name: '小明',
age: 18
},
onLoad: function () {
var that = this;
wx.request({
url: 'https://xxx.xx/api/getUserInfo',
success: function (res) {
// 在回调函数中使用that,而不是this
console.log(that.data.name);
}
})
}
})
在该例子中,我们可以看到在Page定义的作用域中,先定义了一个that变量,并将该作用域的this赋值给该变量。在onLoad函数中,我们发起了一个异步请求,当请求成功后,会执行success回调函数。由于回调函数内部的this指向的是回调函数本身,如果我们需要获取Page定义的作用域中的data变量,就需要使用that.data了。
- 另外一个使用var that = this的例子是在定义一个自执行函数时。
Page({
data: {
name: '小明',
age: 18
},
onLoad: function () {
(function (that) {
console.log(that.data.age);
})(this)
}
})
在该例子中,我们定义了一个自执行函数,该函数接受一个参数that,并在函数内部打印了that.data.age。通过把Page定义的作用域的this传入该自执行函数,并在该函数内部使用that.data来获取data的值,而不是在回调函数内部使用this。
以上两个例子都是在小程序开发中常见的使用var that = this语法的场景,希望对广大开发者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信小程序开发中var that =this的用法详解 - Python技术站