背景:微信小程序,进入程序一开始会获取用户信息,里面有用户昵称,打印出来是正常的,但是调用了一个函数进行api请求,请求完成后昵称蜜汁变成了base64编码后的了,虽然在调用的这个函数里有base64编码的动作,但是编码的是新var的变量,结果却影响到了外面的变量,我百思不得其解,望解答,万分感谢
app.js获取用户信息:
app.js里调用接口
这个是调用的那个函数,接受一个object参数
取object里的值
服务器返回的昵称是base64编码的,这里把它解码
这里两台打印的结果分别在base64解码之前和解码之后,打印的是app.js里一个存放用户昵称的globalData,和data几乎没有半毛钱关系,但是却在这里改变了,
js 函数传参都是 按值传递的,
具体可以看下 图解JavaScript的参数传递
所有在 取object值的时候,简单深拷贝一下 ,
var data = JSON.parse(JSON.stringify(e.data))