【问题标题】:Add object value instead of reference to the new variable in Type Script在类型脚本中添加对象值而不是对新变量的引用
【发布时间】:2025-12-08 18:40:02
【问题描述】:
saveOccuraces(currentFrequency: Frequencies) {
  var freq = new Frequencies();
  freq = currentFrequency;
  // freq.occurance = currentFrequency.occurance; // <--Problem is here
  this.selectedFrequencies.push(freq);
}
<md-input-container>
  <input type="number" [(ngModel)]="currentFrequency.occurance" mdInput placeholder="Every" name="occurance">
</md-input-container>

<button md-icon-button (click)="saveOccuraces(currentFrequency)">
  <md-icon>add</md-icon>
</button>

在上面的代码中,如果我按原样执行,所有出现的值都会更新为新的,如果我注释freq=currentFrequency; 行并且取消注释freq.occurance = currentFrequency.occurance;,那么它工作正常。

是否有任何替代方法可以仅推送具有值的对象(没有

【问题讨论】:

标签: javascript angular typescript


【解决方案1】:

您可以在Frequencies 中创建一个构造函数,如下所示

Frequencies(frequencies:Frequencies){
this.occurance = frequencies.occurance;
}

这样改代码

saveOccuraces(currentFrequency:Frequencies){
        var freq= new Frequencies(currentFrequency);
        this.selectedFrequencies.push(freq);
    }

使用 Object.Assign() 的替代方式

saveOccuraces(currentFrequency:Frequencies){
            var freq= Object.assign(new Frequencies(),currentFrequency);
            this.selectedFrequencies.push(freq);
        }

【讨论】: