Я делаю инструмент.Этот инструмент должен иметь возможность принимать параметр, выполнять начальную задачу с параметрами, а затем возвращать результат в зависимости от того, какая функция вызывается.
Моя первая попытка была с использованием объекта.Но мне пришлось повторить начальное задание для каждой функции
const test1 = {
add: (a, b) => {
a = a + 1; // This part became repetitive
b = b + 1; // and I had to copy it to other function
return a + b;
},
multiply: (a, b) => {
a = a + 1;
b = b + 1;
return a * b;
}
}
console.log("test1=" + test1.add(1, 2));
Затем я попытался использовать функцию и вместо нее использовать переключатель.Это то, что я сейчас использую для решения этой проблемы.Это лучшее решение для этого?
function test2(o, a, b) {
a = a + 1;
b = b + 1;
switch (o) {
case "add":
return (a + b);
case "multiply":
return (a * b);
}
}
console.log("test2=" + test2("add", 1, 2));
Но потом я подумал об использовании классов.Я вызываю его, создавая новый объект класса, и вызываю функцию класса
class test3 {
constructor(a, b) {
this.a = a + 1;
this.b = b + 1;
}
add() {
return this.a + this.b;
}
multiply() {
return this.a * this.b;
}
}
console.log("test3=" + new test3(1, 2).add());
Кажется, это гораздо удобнее и проще для чтения, чем переключение регистра, но я беспокоюсь, что создаю новый класс снова и снова для функции, которую буду использоватьодин раз, но затем отбрасывать.
Есть ли способ заставить класс выполнять первоначальную задачу с параметром, но сохранять функции статичными, чтобы мне не приходилось создавать экземпляр класса new каждый раз, когда мне нужно его использовать?
Я чувствую, что что-то упустил.Есть ли лучший способ справиться с этим?