Мне интересно, есть ли другие способы сохранить класс в javascript. Я уже пытался сериализовать с помощью JSON .stringify (), но это возвращает ошибку, так как некоторые классы ссылаются друг на друга (Person и Table).
Я знаю, что можно написать пользовательское сохранение методы для каждого типа класса и написать собственный инициализатор для каждого класса, используя идентификаторы вместо указателей. Но мне интересно, как будет выглядеть будущий сценарий ios, могу ли я настроить JSON .stringify, или если у класса есть настраиваемая функция печати, или вы можете написать ее, как вы, в python.
Пользовательские методы печати и сохранения для классов?
Возможно сохранение и экземпляр класса в куче ie?
Классы: Project
class Project{
constructor(room, name, id, guests, allowedModerators,creationDate, creationUser, plannedDate){
this.room = room || undefined;
this.name = name || "Ditt Prosjekt";
this.id = id || generateID();
this.guests = guests || [];
this.allowedModerators = allowedModerators || [];
this.creationDate = new Date(creationDate) || new Date().getTime();
this.creationUser = creationUser || undefined; // Pointer ID
this.plannedDate = new Date(plannedDate) || undefined;
this.setCreationDate();
}
//Methods...
}
Person
class Person{
constructor(firstName, surName, age, gender, email, allergies, id, table, seat){
if(arguments.length == 1 && typeOf(arguments[0]) == "object"){
//check if they are object for import
}else{
this.firstName = firstName || undefined;
this.surName = surName || undefined;;
this.age = age || undefined;;
this.gender = gender || undefined;;
this.email = email ||undefined;
this.allergies = allergies || [];
this.id = id || generateID();
this.table = table || undefined; //pointer
this.seat = seat || undefined;
}
}
//Methods...
}
Таблица
class Bord{
constructor(positionX, positionY, bordType, rotation, descriptor){
this.id = idCounter;
idCounter++;
this.persons = [];
this.seats = [];
this.seats = new SeatController(this);
}
}
SeatController
class SeatController{
constructor(parentTable){
this.table = parentTable;
let tempValue = parentTable.returnCenter();
this.numberOfSeats = parentTable.returnNumberOfSeats();
this.seats = [];
}
}
[Простая структура классов] [1]
[1]: https://i.stack.imgur.com/n4FHw.png** сильный текст **