在微信小程序环境下,获取window对象

在微信小程序环境下,获取window对象,第1张

本文中的方法并不能用于实际小程序项目,仅供学习交流!!

众所周知,微信小程序的js中不能使用 window对象 以及 document对象 。

难道他们真的不存在吗?事实并非如此。

熟悉this的同学都知道,在浏览器环境下,触发一个立即执行函数时,其中this的指向往往都是window对象。

这段js在小程序中是同样有效的,所以window对象确实存在。

window对象中包含了很多对象,如wx、Page、Component、Behavior等变量,你可以试试看。

不过在严格模式下,this就指向了undefined。而且es6转es5时也默认开启了严格模式。

如果你想尝试,首先你需要在微信开发工具中选择右上角的 详情-项目设置 取消选中ES6转ES5即可

获取到了window对象,我们就可以获取其他全局变量

当我们js报错时,其路由前面部分是一样的。

在控制台中,我们可以看到微信小程序的html部分的源码。

在实际开发中我们可以利用这个方法,把一些全局方法给转移或清除掉,比如alert。

1、非严格模式下,可以获取window对象。

2、可以在window中扩展自己的全局变量,当然并不推荐这样做。

3、各种你能想到的 *** 作...

此文仅供交流,如有不当,请指正。

因为以前都是用Vue开发,写项目,自然而然的就习惯了vue的双向绑定机制,开发中也觉得这真是方便,但是在最近的小程序开发中,我在动态往数组中传值,可是吃尽了苦头,怎么绑都绑定不上。当然,也并不是再说小程序的不好,各有各的开发理念,各有各的好,所以在这里写下一些心得,一方面让自己别忘了,一方面也希望和我一起遇到这个问题的小伙伴们,别再走这个坑!

言归正传:

加入此刻我的data中,有一个数组

然后我定义了一个方法,需要往这个lists数组中动态的添加数据

这个方法是可以往data中的lists中添加对象的,这我相信大家都能做得到,很简单

但是,当我们要改变这个lists中某个对象下的key:value值呢?当时我就在这里卡了好久,我一开始想的的是在this.setData()这个函数中,把key值改为 lists[下标].属性值 但是当我这样写了以后,控制台立马报错,原因是因为,他在data中并没有找到你这个key值,也就是说我们这个写的方法是错误的,但是按照道理思路是没错的,所以也就有了下面这个方法,可以改变对应的lists里面的属性值

这样就可以了,就能改变data中数组里面任意的值,不过要谨记一点,就是,一定要拿中括号[xx]包裹你要改变的key值,不然也是会报错的!好了,其实我感觉我说了很多没必要的话,但是,我就当记笔记了!希望大家和自己继续努力,学习永无止境【点击了解更多加盟项目】

需求如下:当前后台返回json和需要用到的不一致,需要手动更改。

例1:更改对象中的某一元素

['']通过此种方式获取到需要改变的对象或者数组当中的元素然后更改

例2:将后台返回的对象(包含数组)中的部分数值赋值给需要的对象

现在最外层仅需要name和id字段,而数组list需要变更为数组children并且同样适用name和id属性。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存