我正在处理angular2 typescript项目,我只是想将对象的键重置为''在调用save()函数之后,示例在
之下export class Events{
event:any={ name : '', date : '',.........};
eventOriginal=this.event;
save(){
//save(this.event)
//after save, reset value to initial state
this.event=this.eventOriginal;
}
}
但是在console.log(this.event)中没有清除该值,两个对象都是相同的。我也尝试从构造函数赋值, 那么,在打字稿中重置对象键的正确方法是什么?
答案 0 :(得分:1)
将对象分配给另一个对象时,只分配引用。
使用spread
克隆对象export class Events{
event={ name : '', date : '',.........};
eventOriginal= {...this.event};
答案 1 :(得分:1)
步骤eventOriginal=this.event;
只会在javascript中指定 参考 。
应使用Object.assign()
方法复制所有可枚举的自有属性的值。像
eventOriginal = Object.assign({}, this.event);
然后再
this.event= Object.assign({}, this.eventOriginal);