Tengo la siguiente clase (pseudocódigo de ejemplo):
class Whatever { constructor(param1, param2, ... , param15) { this.someLongInitialTask1(param1, param2, ... , param15); this.someLongInitialTask2(param1, param2, ... , param15); // some other operations } someLongInitialTask1(param1, param2, ..., param15) { //here some operation to be performed only at inizialization } someLongInitialTask2(param1, param2, ..., param15) { //here some operation to be performed only at inizialization } } Me gustaría poder especificar en mi código la lista de parámetros/argumentos param1, param2, ..., param15 solo en 1 lugar, en lugar de repetirlos cada vez que los necesito. La razón es hacer un código más robusto y mantenible y evitar olvidar cambiar los parámetros en las distintas llamadas múltiples.
¿Cómo es posible hacer eso?
No quiero que estos parámetros sean un campo/propiedad de la clase porque son útiles solo cuando la clase se instancia inicialmente y no hay necesidad de "memorizarlos" dentro del objeto (no hay necesidad de asignarlos a los campos del objeto ).
Tener muchos parámetros es algo que tiendo a evitar en estos días (prefiero los parámetros desestructurados de objetos), pero si solo desea pasar argumentos, puede usar la sintaxis extendida.
class Whatever { constructor(...params) { this.someLongInitialTask(...params); } someLongInitialTask(...params) { const [param1] = params; console.log(param1); this.someLongInitialTask2(...params); } someLongInitialTask2(...params) { const [param1, param2, param3] = params; console.log(param1, param2, param3); } } new Whatever(1,2,3);