У меня есть класс машинописиКлонирование машинописи объекта
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 и расширять, но, похоже, это не работает, и я думаю, что это из-за того, что он является объектом машинописного текста. Или это не имеет значения?
Любые ответы о том, как клонировать этот объект был бы оценен
Благодаря
Спасибо, это работает. Просто не чувствовал себя хорошо в отношении машинописных текстов. Мне не нравится использовать Javascript-код в машинописном тексте только потому, что я знаю, что он будет работать. Но пока это похоже на единственное решение. Спасибо – mwild
Вы можете обернуть его на класс/прототип: 'public clone(): Restaurant {/ * тот же код jquery, просто верните r2 * /}' – cdbajorin