当需要使用全局变量的时,通过使用全局函数 getApp() 获取全局的实例,并设置相关属性值,来达到设置全局变量的目的
当需要保证全局的数据可以在任何文件中安全的被使用到,那么可以在 App() 中进行设置
app.js
App({
globalData: {
b_userHasLogin: false,
myself.js
// console.log访问全局变量
var app= getApp()
console.log(app.globalValue) // 输出 globalValue
正确的,有值,修改全局变量之后重新用console打印,也有值
// 本地data存储app在AppData窗口中观测全局变量
var app= getApp()
Page({
data: {
app : getApp(),
在其他函数内修改
app.b_userHasLogin = true
窗口观测到的app的值依然未false,修改全局变量之后重新用观测数据依旧没变化
总结:
用C++的指针视角去看JS是有问题的,猜测是paga页面的app构造比较早,大概率和js的数据存储方式有关系
对于全局变量的监控观测方式不对,实际上app的全局变量以及被修改了
使用console观测更准确