小程序的this指向问题

小程序的this指向问题,第1张

小程序的this指凯戚向的是window,一般要在方法里重新定义的

原因 :回调函数success中的this显示undefined,需要将外层this传进来。至于为啥会盯乱陵报undefined,有陪判人给出解释是this指向回调函数本身。

另外一种方法:使用 箭头函数

控制台显示这两个指向相同

原因: 箭头函数中this指向外层作用域,

在小程序中使用this.setData()方法是非常常见的,通过这个方法,可以将data中的变量进行赋值扮升尺.那么如果遇到下面这种情况:

如果此时我想修改 belineData 对象下的 name 的值,我们可以这样 *** 作

这样就可以把字符串赋值给对象下的 name 属性

这个时候,我们需要给 belineData 数组下的第一个对象赋值的话.大概脑子里想的应笑旦该是:

然后,我们会发现,这样写并不行厅高.而要通过ES6的标识符来实现

使用变量的部分要 ${} 套用起来就可以了.

官方

先看一下官方对于 this.data 和 this.setData({}) 的定义与用法

知识乱伍点

this.data 是用来获取页面data对象,仅会改变数据,无法改变页面的状态凳陪尺,可能会造成数据不一致;

this.setData({}) 是用来修改数据,不仅会改变数据,而且还会改变视图;

问题

实际自己在学习过程中,遇到一个问题,下拉刷新的方法当中,用 this.data this.setData({}) ,在数据显示上并没有什么不同,学习的视频中,授课老师用的是this.data,这个地方我自己也没有搞清楚是为什么

*** 作效果:

this.data

this.setData({})

可以看出来,两者使用并没有什么明显的区别。

总结

实际使用当中按照上面 知识点 部分加粗部分去执行,肯定是没有错的,涉及到页面数据更新的,使用**this.setData({}) **,在js中枣高使用data数据时使用****this.data.属性 。****


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12320569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存