对象类型的变量A,将A赋值给变量B,将A的某属性赋值给变量C,更改变量C的值,B也会自动跟着被更改?

小程序 文章 2022-03-11 10:00 586 0 全屏看文

AI助手支持GPT4.0

对象类型的变量A,将A赋值给变量B,将A的某属性赋值给变量C,更改变量C的值,B也会自动跟着被更改?Object type variable A, assign A to variable B, assign an attribute of A to variable C, change the value of variable C, and B will be automatically changed?

对象类型的变量A,将A赋值给变量B,将A的某属性赋值给变量C,更改变量C的值,B也会自动跟着被更改?

有如下代码:

    var id = that.data.wid

    var tfl = that.data.tfl   

    var tpnew = that.data.tfl.tp

    var qa = that.data.queryResult

    var zts = qa[id].zts  

    var tpold = '' 

    if(zts&&zts.length>0){

      zts.forEach(function(item){

        if(item.zt==that.data.title&&item.hasOwnProperty('tp')){

          tpold=item.tp

        }

      })

    }

    if(tpold){

      if(tpnew.length>0){

        tpold.forEach(function(item){

          var okg = 0 

          tpnew.forEach(function(it,index){

            if(item==it){

              console.log('tfl:',tfl)

              console.log('tpnew:',tpnew)

              tpnew.splice(index,1) ///////////修改tpnew的值

              console.log('tpnew:',tpnew)

              okg=1

              console.log('tfl2:',tfl) ////////这时候显示tfl的值也被改了

            }

            if(index==tpnew.length-1&&okg==0){

              console.log('id:',that.data.swid)

            }

          })

        })

      }

    }

在运行过程中,更改了tpnewr的值后,tfl的值也随之改变,请问我的代码出错在哪?

有如下代码: var id = that.data.wid var tfl = that.data.tfl var tpnew = that.data.tfl.tp var qa = that.data.queryResult var zts = qa[id].zts var tpold = '' if(zts&&zts.length>0){ zts.forEach(function(item){ if(item.zt==that.data.title&&item.hasOwnProperty('tp')){ tpold=item.tp } }) } if(tpold){ if(tpnew.length>0){ tpold.forEach(function(item){ var okg = 0 tpnew.forEach(function(it,index){ if(item==it){ console.log('tfl:',tfl) console.log('tpnew:',tpnew) tpnew.splice(index,1) ///////////修改tpnew的值 console.log('tpnew:',tpnew) okg=1 console.log('tfl2:',tfl) ////////这时候显示tfl的值也被改了 } if(index==tpnew.length-1&&okg==0){ console.log('id:',that.data.swid) } }) }) } } 在运行过程中,更改了tpnewr的值后,tfl的值也随之改变,请问我的代码出错在哪?

回答:

小黎:

去了解下对象深拷贝和浅拷贝

总得通:谢谢您,己解决了。
老张:

js基本知识了。

一般自己写几行代码演示一下就明白了。

总得通:师傅,可否明示一二?我刚学的,弄了两天都不明白。
老张:类似这样的代码,你写几句就明白了。对象变量是指针引用,或者你百度一下“JS对象深拷贝”。
总得通:谢谢!
总得通:

-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
客服问题?
emoji文本显示问题
早上突然发现开发工具定位到美国了,开发工具定位不对?
小商店是微信小程序的一种,流量来源里面注明了,全局搜索搜一搜,为什么我的小商店在搜一搜搜索不到?
小程序代码提交3天了迟迟没有审核,加急已经超两小时了还是不过?
随便看看
线上防疫题库正确答案 2932
线上防疫题库正确答案(多选题) 4825
微信设置不可以使用小程序(游戏小程序) 5634
adsense申请已经支付的订单回退的网址 3212
BT面板查看网站入口、账号密码的命令 6008
ucloud海外服务器超级优惠券 3274
根据您的消费情况,您的延停权益已发生变化,变更后的延停权益为延停额度20.00元 5831
为什么我们喜欢迈克尔杰克逊。 4163
阿里云com、cn域名续费优惠码(2020年5月可用) 3586
阿里云com、cn域名续费优惠码(2020年6月可用) 3606