关于console.log()输出问题
发布于 6 年前 作者 yangtian 8346 次浏览 来自 问答

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

1 回复

我查看了一下,好像是微信小程序对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

    }

})

回到顶部