【发布时间】:2017-02-11 11:56:17
【问题描述】:
我有一个打字稿课
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" );
但是由于 javascripts 通过对象的引用传递,我对 restToEdit 所做的更改也会保存在缓存中的餐厅中。
我基本上希望缓存中的餐厅与 restToEdit 完全不同。
我尝试过使用 jQuery.clone 和 extend,但它似乎不起作用,我认为这是因为它是一个 typescript 对象。还是那不重要?
任何关于如何克隆此对象的答案将不胜感激
谢谢
【问题讨论】:
标签: javascript typescript clone