众所周知,微信小程序的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、各种你能想到的敬宴让 *** 作...
此文仅供交流,如有不当,请指正。
1. 开发小程序时,每个页面一定要在app.json文件中注册,页面文件夹和其包含的四个文件的名字要保持一致。
2. 小程序发起的都是HTTPS网络请求,在开发调试的过程中可以不校验协议和TLS版本,但在实际上线后必须进行HTTPS协议通信。
3. 小程序可以进行组件化开发以及数据绑定,所有对于DOM的 *** 作都是基于数据驱动的,并没有直接进行DOM *** 作的做法,换言之,小程序内没有document对象,原生js和jQuery里的DOM *** 作思维要舍弃掉。
4. 小程序的网络请求wx.request()是不自带Cookies的,这和浏览器上的网络请求不同,因此基于Cookies实现的会话管理不适用于小程序。
5. 小程序的脚本文件中,内置对象是page,而非传统浏览器里的window,因此所有基于window对象来写的库(例如jQuery)都不适用于小程序。
6. 小程序提供模板功能,模板拥有自己的作用域,它只能使用从data属性传入的数据。
7. 每一个页面文件夹下的.json文件是用来写配置项的,如果该页面无需添加相关配置,.json文件也要写上一对大括号(“{ }”),否则会报错。
8. 在同一个tab里的页面可以跳转,并且允许携带参数。不同tab的页面之间无法跳转,使用wx.navigateTo()接口会报错誉孝。同时,tab之间的跳转可以用wx.switchTab()实现,但是路径后不能带参数。
9. 脚本文件里data的数据,在更新的时候要通过this.setData()方法来更新,而不能直接用“=”来做。
10. 在组件标签里,可以通过“data-属性值”的方式绑定我们需要的数据,然后在事件内置event对象里进行获取。
11. 小程序里也存在事件的冒泡,具体的冒泡事件可以参考官方文档,如果希望事件向上冒泡,则使用bind来绑定事件,若希望阻止事件冒泡,就使用catch来进行事件绑定。
12. 小程序支持文件引用,有import和include两种方式,import有作用域,也就是引入的目标文件里import的模板不会被引入;而include等于是将目标文件除 以外的整个代码进行引肆旅入。
13. wx.login()和wx.getUserInfo()是两个独立的接口,前者可以实现用户登录,这个过程是悄无声息的,不需要用户授权,登录后可以拿到用户的openid和session_key;而wx.getUserInfo()可以拿到用庆雹稿户的具体信息,这个过程需要获得用户的授权,开发时也必须考虑用户拒绝授权的场景。
14. 目前小程序可以分享给微信好友和微信群,但小程序默认是没有这个功能的,只有在Page里定义了onShareAppMessage事件处理函数,点击小程序右上角才可以看到分享按钮。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)