У меня есть простой класс с единственным методом exec(arg1,..,argn)
, и я хочу иметь несколько методов псевдонимов, которые вызывают exec
с предопределенными значениями аргументов (например, exec_sync = exec.bind(this, true)
).
Ниже приведен трюк:
class Executor {
constructor() {
this.exec_sync = this.exec.bind(this, true);
}
exec(sync, cmd, args/* ... */) {
// impl
}
}
Но Я не знаю, хорошая ли это идея, или это идиоматично для ES6.
UDATE:
В реальном примере у меня есть две вложенные петли с соответственно 3 и 4 циклами, которые используются для динамического добавления в класс всего 12 методов псевдонимов. Было бы громоздкой задачей явно определять методы псевдонимов, когда вы действительно можете использовать JS, являющийся языком программирования на основе прототипа.
ОБНОВЛЕНИЕ 2 - ПРИМЕР:
Предположим, что у нас есть простой HTTP-клиент с методом request(method, body)
, и мы хотим предоставить методы псевдонимов для GET
, PUT
и т.д. Это будет выглядеть примерно так:
class HTTP {
constructor() {
['GET', 'PUT', 'POST', 'DEL'].forEach((method) => {
this[method] = this.request.bind(this, method);
}, this);
}
request(method, body) {
// execute the HTTP request
}
}