chooseimage: function () {
var that = this;
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
this.setData({
..............................................
错误为:
this.setData is not a function;at pages/main/index chooseimage function;at api chooseImage success callback function
TypeError: this.setData is not a function
...............................................
为什么一定要
that.setData({ ....................才行?不好意思,我是搞C++的,这js和微信还是第一次用。请大家解答下,谢谢,
作用域的问题,this对应的对象变了。不过用var that = this;我一直觉得很别扭。我都用var t = this;
哦,理解了,谢谢大家,
原来同一个函数内部,使用的情景不同其 this 作用域也不同,谢谢哈,
js里的this是比较特殊的
success: function (res) {
在这个function里面,this的上下文已经变了,不再指向当前Page本身,至于它这个时候指向的是什么,还没有深入研究过,不清楚;
而在wx.xxx请求之外定义的var that = this , that 里面存的就是当前Page本身,不会变的,所以用that没有问题
作用域,this指向变了