Я не знаю JS / ES6 достаточно хорошо, чтобы описать мой вопрос в коде.Таким образом, большая часть этого вопроса концептуально и в псевдокоде.
Скажем, у меня есть класс Contractor
, подобный этому:
class Contractor {
constructor(jobFn) {
// save jobFn;
}
dailyRoutine() {
// let result = DriveToWork()
const result = 6
DoTheJob(result)
DriveBackHome()
}
}
Проблема в том, что DoTheJob()
может быть разными вещами в разных местах.
Таким образом, в месте A это может быть
he = new Contractor(write_front_end(with, this, and that))
И в месте B это может быть
he = new Contractor(fix_backend_node(with, express))
Т.е. поведение должно быть передано во времяконструктор и действие могут иметь другой вид и различное количество параметров.
Возможно ли такое с ES6?
Пожалуйста, покажите код ES6, который может передавать функции с разным типом и различным количеством параметров через конструктор, на DoTheJob()
.
Далее,проблема заключается в том, что jobFn
должна быть функцией Curried , что означает, что для выполнения задания DoTheJob
отсутствует один или несколько параметров.Скажем, если jobFn
передано с Curried add(3)
, тогда DoTheJob
сделает UncurriedAdd из add(3, 6)
;если тогда jobFn
будет передано с Curried multiple(5)
, тогда DoTheJob
сделает Uncurried из multiple(5, 6)
;