收藏
回答

拿不到全局对象的值


第36和37行代码输出的内容竟然不一样,36行输出的对象的userInfo是有内容的,而37行输出的是userInfo的初始数据

最后一次编辑于  2018-09-17  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • 卢霄霄
    卢霄霄
    2018-09-17

    他这个 有点扯。。。把你第一个console改成 console.log(JSON.parse(JSON.stringify(app.globalData))) 试试呢,

    2018-09-17
    赞同
    回复 2
    • 涛
      2018-09-17

      按照你的方法,是变得一样了,但是值去哪了


      2018-09-17
      回复
    • 卢霄霄
      卢霄霄
      2018-09-17回复

      先解释下原因哈。。console出来的这个东西,不是你console.log这一刻,这个对象的内容。。而是你查看的时候,这个对象的内容。也就是说,其实你在调用的时候,app.globalData的值并没有赋值上。

      我猜你是在 app.js里的生命周期函数里给globalData赋值的。然而 app.js里的方法并没有走完的时候,已经走到了 page 里的 onLoad方法。要验证这一点,在你给globalData赋值的地方console.log一下,再在你用的地方 console.log一下,看哪个先打出来就知道了。

      要处理掉这个问题,可以使用设置回调的方式。onLoad里传一个方法给app.js。等app.js取得了globalData,就去调用这个方法。其他可以处理掉这个异步的方式也都行

      2018-09-17
      4
      回复