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的值也随之改变,请问我的代码出错在哪?
去了解下对象深拷贝和浅拷贝