收藏
回答

定时器问题?




我data里的num 并没有每次变化之后有setData操作,但是实际情况是我data的num确实变化了。敢问老大哥们,帮我解解迷津

最后一次编辑于  09-30
回答关注问题邀请回答
收藏

1 个回答

  • Smile
    Smile
    09-30

    num是array是引用类型,你向下传引用地址不变,你在第三张图的循环体最后都改变了numarr里面的值,最后跟着改了,你浅拷贝一下就可以了

    that.setData({
      ctime:  cdown.cdown(that.data.num.concat())
    })


    09-30
    赞同
    回复 4
    • 罗素的粉
      罗素的粉
      09-30
      老大哥,“你浅拷贝一下就可以了”这句话怎个理解0-0
      09-30
      回复
    • Smile
      Smile
      09-30回复罗素的粉
      只有一层浅拷贝,有多层引用类型就要用深拷贝,第二张图最后面那句你改成我上面发的那样就可以了。
      09-30
      回复
    • Smile
      Smile
      09-30回复罗素的粉
      浅拷贝可以理解成浅复制吧,你网上搜一下概念吧,js的引用类型要完全复制需要用浅拷贝(使用只有一层的情况使用)或者深拷贝。网上也有很多解读和分装。
      09-30
      回复
    • 罗素的粉
      罗素的粉
      09-30回复Smile
      好嘞好嘞- -一开始我以为“浅拷贝”是你那边的方言啥的了。谢谢
      09-30
      回复
问题标签