小程序如何面向对象编程
- 需求的场景描述(希望解决的问题)
Page({ onload(){ let app = getApp() let that = this let customer = new customer(app ,that ) } })
function customer(app,indexPage){ this .app= app this .api= '//api地址 this.appid= ' '//appid // this.indexPage = indexPage } customer.prototype.login=function(){ let result ={} let thatt = this let url = this.api + "地址" let form_data = {} wx.login({ success: function (res) { let client_code = res.code wx.request({ url: url, data: { app_id: thatt.appid, client_code: client_code, scene: ' 101 ', }, method: ' POST ', success: function (res) { if (res.data.status == ' success ') { result=res.data.data console.log(result) // thatt.indexPage.setData({ login_info: res.data.data }) } else { systemAlert(res.data.info); } }, fail: function (res) { systemAlert(res.errMsg); } }) }, fail: function (res) { systemAlert(' 登陆失败'); } }) } |
为什么这个时候我登陆成功以后为什么不能用thi.setData({})
10 回复
不是,就是把对象中的对象中的this作为行参,将page中的this作为实参,仅此而已,但因为login的回调,作用域发生变化,可以用es6箭头,但如果不用传参的this指向的也只是customer而不是page,这个就是有点绕。
你好,请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。