收藏
回答

关于console.log()输出问题


看图,我对一个数组进行了右移一位操作,思路是先保存最后一个值,再移除,添加到首部,但是打印出来的数据没变,我在函数移除最后一个数组元素之后打印,长度也不对


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

1 个回答

  • Smile
    Smile
    2019-01-01

    我查看了一下,好像是微信小程序对data里面的数据进行了observe的绑定,在我把这个数组复制的时候,他连着observe一起复制了,导致了我虽然是在函数传值,然后更改,但是源数据还是进行了改变,this.data里的数值也变了,举个例子

    page({

        data:{

            test:0

        },

        onLoad(){

            let test=this.data.test

            console.log(this.data.test) //=>1(有点没弄懂为什么这里也变成1了?)

            test=1;

            console.log(this.data.test) //=>1

        }

    })

    2019-01-01
    有用
    回复 1
    • Smile
      Smile
      2019-01-01

      为什么....

      我又自己点了回答....

      2019-01-01
      回复
登录 后发表内容