Поэтому я изучал фабричные функции и классы в поисках наиболее оптимизированного способа создания нескольких объектов с несколькими функциями/операциями каждый.
Допустим, я делаю список TODO, каждая задача, которую я создаю, имеет 7 параметров и даже больше операций, но в основном геттеры и сеттеры.
Если я создам каждую из этих задач, используя фабричную функцию, каждый созданный объект будет иметь почти дюжину функций в памяти для каждой из созданных задач, верно?
Поскольку у нас есть Object.create()
для создания объекта в качестве прототипа другого, не лучше ли выделить taskOperations
как самостоятельный объект и использовать Object.create(taskOperations)
, как я сделал ниже, чтобы не забивать память одинаковыми функциями для всех созданных объектов?
Будет ли это наиболее оптимизированным способом или использование классов, например, более эффективно для этого?
const taskOperations = {
getTitle() {
return this.title;
},
setTitle(title) {
this.title = title;
},
getDateCreated() {
return this.dateCreated;
},
setDateDue(dateDue) {
this.dateDue = dateDue;
},
getDateDue() {
return this.dateDue;
},
setPriority(priority) {
this.priority = priority;
},
getPriority() {
return this.priority;
},
};
// Task factory
const createTask = (title) => {
let task = Object.create(taskOperations);
task.title= title;
task.dateCreated= new Date();
task.dateDue= "";
task.priority= false;
task.note= "";
task.done= false;
task.projectID= 0;
return task
};