Javascript 角度5中的变量范围
我知道这是个愚蠢的问题,但我想知道这个变量的确切范围 我已经尝试过跟踪,如果我对数据做了任何更改,响应也会改变 我尝试过以下方法:Javascript 角度5中的变量范围,javascript,angular,typescript,Javascript,Angular,Typescript,我知道这是个愚蠢的问题,但我想知道这个变量的确切范围 我已经尝试过跟踪,如果我对数据做了任何更改,响应也会改变 我尝试过以下方法: 私人响应; 私人数据; getdata(){ this.service.getdata().subscribe((res:any)=>{ 如果(res){ 这个响应=res; 这个数据=res; } }); } 如果我使用数据作为其他组件的输入参数并对其进行任何更改,我的this.response也会发生更改 我不确定如何保留以前的数据。这是因为响应和数据共享同一
私人响应;
私人数据;
getdata(){
this.service.getdata().subscribe((res:any)=>{
如果(res){
这个响应=res;
这个数据=res;
}
});
}
如果我使用数据作为其他组件的输入参数并对其进行任何更改,我的this.response也会发生更改
我不确定如何保留以前的数据。这是因为响应和数据共享同一个对象引用 if条件中的代码只是彼此的浅拷贝
this.response = this.data = res;
因此,当您更改一个值时,另一个值也会更改
为了避免这种情况发生,您可以执行以下操作
this.data = Object.assign({},res);
或
有关浅拷贝和深拷贝的详细信息,请阅读,如何避免?如何获得未更改的数据?
this.data = {...res}