收藏
回答

小程序全局变量必须通过globalData设置吗?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug globalData 工具 7.0.0 1.0.0

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


var App = getApp()

App.userInfo = 'i am info'

这种方式也可以共享userInfo的值,这个和globalData设值的方法有何区别?

回答关注问题邀请回答
收藏

2 个回答

  • 慢慢。
    慢慢。
    2021-01-20

    App 是一个对象,属于引用数据类型。习惯上,我们定义的全局变量多数挂载在 app.globalData 对象上,但其实无论 globalData ,还是 abc 都是一样的,只是一个属性名称而已。你改为其他的名字完全是没问题的,只要跟小程序提供的钩子(函数)不冲突就行,比如不能是 onLaunch、onShow 等。


    至于你说的,getApp().userInfo = 'i am info' 其实就是下面的区别:

    const app = {
      userInfo: 'xxx'
    }
    
    // 相当于
    const app = {}
    app.userInfo = 'xxx'
    


    2021-01-20
    有用
    回复 1
    • alin
      alin
      2021-03-11
      感谢
      2021-03-11
      回复
  • 海玄科技
    海玄科技
    2019-03-21

    在app.js 里设置的,都一样,全局调用。

    2019-03-21
    有用
    回复 1
    • alin
      alin
      2019-03-21

      不在app.js里面设置 在某个page页里面的动态设置App.xx = 'some value'

      2019-03-21
      回复
登录 后发表内容