我有一个 TypeScript 类
export class Restaurant {
constructor ( private id: string, private name: string ) {
}
public getId() : string {
return this.id;
}
public setId(_id : string) {
this.id = _id;
}
public getName () {
return this.name;
}
public setName ( _name:string ) {
this.name = _name;
}
}
我随后创建了该类的一个实例(这是一个示例):
restaurant:Restaurant = new Restaurant(1,"TestRest");
然后我将这个餐厅对象存储在某种缓存中
cache.store( restaurant );
然后在我的应用程序中稍后获取餐馆
var restToEdit = cache.get( "1" );
restToEdit.setName( "NewName" );
但由于 JavaScript 对象的按引用传递,在 restToEdit 中所做的更改也会保存在缓存中的餐厅中。
我希望缓存中的餐厅是一个完全不同的实例,而不是与 restToEdit 相同的实例。
我尝试过使用 jQuery.clone 和 extend,但似乎并没有起作用,我认为这是因为它是一个 TypeScript 对象。或者这无关紧要吗?
如果有关于如何克隆此对象的任何答案将不胜感激。
谢谢
Object.assign
会使用引用进行复制。 - Thaadikkaaran